【问题标题】:How to import SignalR in Angular2 component?如何在 Angular2 组件中导入 SignalR?
【发布时间】:2017-09-22 03:04:24
【问题描述】:

我正在使用 angular-cli 来搭建我的 Angular2 应用程序。

以下是我package.json的摘录:

"dependencies": {
    // ...
    "jquery": "^3.1.1",
    "signalr": "^2.2.1"
    //...
},
"devDependencies": {
    // ...
    "@types/jquery": "^2.0.39",
    "@types/signalr": "^2.2.33"
    //...
}

我的app.component.ts

import { Component } from '@angular/core';
import * as $ from "jquery";
import "signalr";

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
    title = 'app works!';
    constructor() {
        console.log($);
    }
}

现在我从 SignalR 收到以下错误,说没有添加 jQuery,但我已经在上面的行中导入了它:

错误:没有找到 jQuery。请确保之前引用了 jQuery SignalR 客户端 JavaScript 文件。

如果我注释掉import "signalr"; jQuery 会正确加载。这里发生了什么?为什么 SignalR 说找不到 jQuery?

【问题讨论】:

    标签: javascript angular typescript signalr


    【解决方案1】:

    我这样解决了这个问题:

    import $ from 'jquery';
    window.jQuery = $;
    require('signalr');
    

    Signalr 依赖于window.jQuery。由于某种原因import $ from 'jquery' 没有设置window.jQuery。这就是为什么需要明确地这样做。

    【讨论】:

      猜你喜欢
      • 2018-02-21
      • 2016-07-09
      • 2017-03-20
      • 2017-01-31
      • 2016-03-07
      • 2017-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多