Javascript Angular2:在Angular2中使用Jquery:错误:没有令牌Jquery的提供程序
我想在Angular2应用程序中使用Jquery。我做了以下工作:Javascript Angular2:在Angular2中使用Jquery:错误:没有令牌Jquery的提供程序,javascript,jquery,angular,Javascript,Jquery,Angular,我想在Angular2应用程序中使用Jquery。我做了以下工作: 我是使用npmpackage.json安装的 "devDependencies": { "@types/jquery":"2.0.42" } 我创建了一个jQuery.service.ts文件,并声明了一个OpaqueToken来公开这个库 import { OpaqueToken } from '@angular/core' export let JQ_TOKEN = new OpaqueToken('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
import {JQ_TOKEN} from './common/jQueryService' declare let jQuery : Object;
component.ts
文件中的$ofjQuery
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');
}
}
我得到以下错误:
错误:没有令牌jQuery的提供程序
有人能告诉我为什么会出现此错误吗?请在index.html和 像这样声明jQuery声明var jQuery:any;在您的组件中,您可以使用
它不需要包含额外的内容。您提到的链接的可能副本不会实现使用不透明标记公开jQuery。我想用不透明的令牌公开我的第三方服务,尽管这样做有效,但它使您的代码很难测试,因为您不依赖全局服务而不是注入服务。