2017-05-05 89 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

公开我的第三方服务,尽管这样做有效,但它会让您的代码非常难以测试,因为您不依赖于全局而不是注入服务。 –

相关问题