【问题标题】:Angular2 : Using Jquery in Angular2 : Error: No provider for Token jQueryAngular2:在 Angular2 中使用 Jquery:错误:没有 Token jQuery 的提供者
【发布时间】:2017-05-05 08:49:28
【问题描述】:

我想在我的 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 中导入并声明了jQuery 令牌

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

现在我正在尝试访问我的component.ts 文件中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');
  }
}

我收到以下错误:

错误:没有 Token jQuery 的提供者!

谁能指导我为什么会出现这个错误?

【问题讨论】:

  • 您提到的链接没有实现使用不透明令牌公开 jQuery。我想使用不透明令牌公开我的第三方服务

标签: javascript jquery angular


【解决方案1】:

请在您的 index.html 中包含 jquery 文件和

像这样声明 jQuery 声明 var jQuery:any;在您的组件中,您可以使用 它不需要包含额外的东西。

【讨论】:

  • 虽然这可行,但它使您的代码很难测试,因为您不依赖全局而不是注入服务。
猜你喜欢
  • 2018-02-10
  • 1970-01-01
  • 2017-10-08
  • 2017-06-12
  • 2016-04-06
  • 2017-01-31
  • 2016-04-08
  • 2016-12-18
  • 2016-07-06
相关资源
最近更新 更多