2015-02-08 15 views
7
/// <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(); 

istnieje problem w kodzie:nieoczekiwany maszynopis ten jest niezdefiniowany typ

this.hub.invoke('hello'); 

this.hub jest zaskakująco niezdefiniowane.

Mam nadzieję, że powinien to być obiekt. Jakieś przemyślenia na ten temat?

Odpowiedz

9

this nie wskazuje na wystąpienie. Fix użyć lambda:

private onConnStart =() => { 
     $("#formBlackJack").show(); 
     this.hub.invoke('hello'); 
    } 

Więcej: https://www.youtube.com/watch?v=tvocUcbCupA

również

this.cnn.start(() => this.onConnStart); 

Może chodziło do call tj () => this.onConnStart()

+0

Niestety, w przypadku onConnStart zwrotnego nie działa. Więc jest problem. – alerya

+0

To działa: this.cnn.start (this.onConnStart); – alerya

+0

dzięki za to. drapało mi głowę wcześniej. ma sens, ale też nie jest spójny. Twoje zdrowie – b26