/// <reference path="../typings/signalr/signalr.d.ts" />
/// <reference path="../typings/jquery/jquery.d.ts" />
interface IMyBlackjack {
}
module My {
export class MyBlackjack implements IMyBlackjack {
private hub: HubProxy;
private cnn: HubConnection;
constructor() {
$("#formBlackJack").hide();
this.cnn = $.hubConnection();
this.hub = this.cnn.createHubProxy("blackjackHub");
this.cnn.start(() => this.onConnStart);
}
private onConnStart(): void {
$("#formBlackJack").show();
this.hub.invoke('hello');
}
}
}
var myBlackjack: IMyBlackjack = new My.MyBlackjack();
代码中存在问题:
this.hub.invoke('hello');
this.hub令人惊讶地未定义。
我希望它应该成为一个对象。 有什么想法吗?
答案 0 :(得分:11)
this
未指向该实例。修复使用lambda:
private onConnStart = () => {
$("#formBlackJack").show();
this.hub.invoke('hello');
}
更多:https://www.youtube.com/watch?v=tvocUcbCupA
this.cnn.start(() => this.onConnStart);
也许你的意思是call
,即() => this.onConnStart()