2016-08-24 5 views
0

Ich benutze eine Ember Komponente didRender() Hook, um einige Javascript zu implementieren, die nach dem Laden des DOM ausgeführt werden muss. Zum Beispiel:Ember.js Komponente didRender Variable Scope

didRender() { 
    var signaturePad = new SignaturePad($("#sigElement")); 
    signaturePad.clear(); 
} 

Das funktioniert gut. Ich muss jedoch auf die Variable signaturePad von meinen Aktionen in derselben Komponente zugreifen, damit die Schaltflächen entsprechend funktionieren. Wie zum Beispiel:

actions: { 
    clearSignature: function() { 
    signaturePad.clear(); 
    } 
} 

Leider scheint es meine Variable in den didRender() Haken für die Komponente nicht passiert auf die actions definiert.

Wie kann ich über meine Aktionen innerhalb derselben Komponente auf diese Variable zugreifen?

Antwort

2

Wenn Sie etwas nach dem Laden von DOM tun möchten, sollten Sie didInsertElement Hook verwenden.

Und das Erstellen einer Variablen legt das nicht als Eigenschaft fest, die in einer anderen Situation verwendet werden soll.

Bitte wie folgt ändern:

didInsertElement() { 
    var signaturePad = new SignaturePad($("#sigElement")); 
    signaturePad.clear(); 
    this.set('signaturePad', signaturePad); 
} 

actions: { 
    clearSignature: function() { 
    this.get('signaturePad').clear(); 
    } 
} 
+0

Perfect. Vielen Dank! – jlommori