2017-05-05 93 views
0

我想在我的Angular2應用程序使用jQueryAngular2:在Angular2使用jQuery:錯誤:沒有提供令牌的jQuery

我做了以下

首先我安裝使用NPM的package.json

"devDependencies": { 
    "@types/jquery":"2.0.42" 
} 

然後我創建了一個jQuery.service.ts文件並宣佈OpaqueToken揭露這個庫

import {OpaqueToken} from '@angular/core' 

export let JQ_TOKEN = new OpaqueToken('jQuery'); 

然後在app.module.ts我進口,並宣佈了jQuery令牌

import {JQ_TOKEN} from './common/jQueryService' 
declare let jQuery : Object; 

現在我試圖訪問的jQuery $在我component.ts文件

import {JQ_TOKEN} from './jQueryService' 

    export class simpleModal { 
     @ViewChild('sessionModal') contentEl : ElementRef; 
     constructor(private elRef : ElementRef, @Inject(JQ_TOKEN) private $ : any){} 
     closeModal() { 
      this.$(this.contentEl.nativeElement).modal('hide'); 
     } 
    } 

,我也得到一個錯誤:錯誤:沒有Token jQuery提供程序!。可有人請指導我,爲什麼這個錯誤出現

+0

可能的重複[如何使用jQuery與Angular2?](http://stackoverflow.com/questions/30623825/how-to-use-jquery-with-angular2) –

+1

您提到的鏈接不實現公開帶有不透明令牌的jQuery。我想用不透明令牌 – ASR

回答

0

請在您的index.html和jQuery文件

聲明的jQuery這樣的聲明無功jQuery的:任何;在你的組件中,你可以使用 它不需要包含額外的東西。

+1

公開我的第三方服務,儘管這樣做有效,但它會讓您的代碼非常難以測試,因爲您不依賴於全局而不是注入服務。 –

相關問題