- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试在我的 Angular 5 应用程序中使用 SignalR。
我从 DefinitelyTyped 安装了这些强类型:
npm install --save @types/jquery
npm install --save @types/signalr
我的 packages.json
中的 typescript 显示版本 2.5.3。
现在我试着像这样使用它:
import { Injectable } from '@angular/core';
@Injectable()
export class SignalRService {
constructor() {}
public ConnectTo(url: string): void {
var hubConnection = $.hubConnection();
var hubProxy = hubConnection.createHubProxy('DashboardHub');
hubProxy.on('Example', (e: any) => {
console.log('worked');
});
hubConnection.start();
}
}
编译器提示如下:
error TS2304: Cannot find name '$'.
...即使 intellisense 可以找到 $.hub
:
如果我尝试将 declare var $ :any;
添加到我的文件中,它会编译,但我在浏览器的控制台中收到另一个错误:$.hubConnection 不是函数
。
我错过了什么吗?
最佳答案
要在 Angular 中使用 SignalR,您需要执行以下步骤:
使用 npm 安装 jquery、signalr 包:
npm install signalr
npm install jquery
添加类型:
npm install --save @types/jquery
npm install --save @types/signalr
将脚本添加到angular-cli.json
"apps": [{
"scripts": [
"../node_modules/jquery/dist/jquery.min.js",
"../node_modules/signalr/jquery.signalR.min.js"
],
}]
在服务中你需要添加:
declare var $: any;
简单的 Angular 代码示例:
import { Injectable } from '@angular/core';
declare var $: any;
@Injectable()
export class SignalrService {
private connection: any;
private proxy: any;
private ulr: any;
constructor() {}
public startConnection(): void {
this.connection = $.hubConnection(this.url);
this.proxy = this.connection.createHubProxy('ProcessingHub');
this.connection.start().done((data: any) => {
console.log('Connected to Processing Hub');
this.sendMessage();
}).catch((error: any) => {
console.log('Hub error -> ' + error);
});
}
public sendMessage(): void {
this.proxy.invoke('SendMessage', 'test')
.catch((error: any) => {
console.log('SendMessage error -> ' + error);
});
}
}
关于Angular 5 + SignalR (DefinitelyTyped) - 找不到名称 '$',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47474987/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!