2016-11-17 1 views
1

Wir versuchen, ein eigenartiges Verhalten von Typoskript herauszufinden. In den folgenden zwei Codebeispielen sollte ein jQuery-Objekt durch Typoskript geändert werden. In dem Beispiel, das einwandfrei funktioniert, verweisen wir auf das jQuery-Objekt, indem wir die Selektor-Engine in einer Methode verwenden, nachdem unsere Typoskript-Klasse instanziiert wurde. Dies funktioniert:Ist es möglich, ein jQuery-Objekt als Konstruktorparameter an ein Typoskriptobjekt zu übergeben?

namespace Company.Module { 
    export class GenericService { 
     private statefulObject: JQuery; 

     public constructor() { 
     } 

     private _toggleObjectState(): void { 
      this._statefulObject.toggleClass('text-hide text-success'); 
     } 

     public SetObjectState(): void { 
      this.statefulObject = $('#statefulObject'); 
      _toggleObjectState(); 
     } 

    } 
} 

Während das jQuery-Objekt im Konstruktor funktioniert nicht:

namespace Company.Module { 
    export class GenericService { 
     private statefulObject: JQuery; 

     public constructor(_statefulObject: JQuery) { 
      this.statefulObject = _statefulObject; 
     } 

     private _toggleObjectState(): void { 
      this._statefulObject.toggleClass('text-hide text-success'); 
     } 

     public SetObjectState(): void { 
      _toggleObjectState(); 
     } 

    } 
} 

Wir möchten verstehen, warum dies der Fall ist.

+0

Ihr erstes Beispiel wird nicht kompiliert. – Paleo

+1

Ich stimme für das Schließen dieser Frage als Off-Topic ab, da der Autor sie schließen möchte. – Paleo

Antwort

0

Leider war dies kein Problem. Unser Code funktionierte nicht, weil wir auf ein Objekt verwiesen, das dynamisch zum DOM hinzugefügt wurde. Wenn das Objekt an den typescript-Konstruktor übergeben wurde, wurde das Objekt einfach nicht in das DOM geladen, daher konnte es nicht manipuliert werden. Moderatoren bitte zögern Sie diese Frage zu entfernen.

Verwandte Themen