Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular2:在Angular2中使用Jquery:错误:没有令牌Jquery的提供程序_Javascript_Jquery_Angular - Fatal编程技术网

Javascript Angular2:在Angular2中使用Jquery:错误:没有令牌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

我想在Angular2应用程序中使用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
文件中的$of
jQuery

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。我想用不透明的令牌公开我的第三方服务,尽管这样做有效,但它使您的代码很难测试,因为您不依赖全局服务而不是注入服务。