2015-06-17 11 views
10

im new to ember framework. Voglio solo eseguire una funzione definita all'interno del hook delle azioni al termine del rendering.Come eseguire l'azione in Ember Controller dopo il riscontro

var Controller = Ember.Controller.extend({ 
    actions: { 
    foo: function() { 
     console.log("foo"); 
    } 
    } 
}); 
Ember.run.schedule("afterRender",this,function() { 
    this.send("foo"); 
} 

ma il codice precedente non funziona. Voglio solo sapere se è possibile eseguire foo() afterRender?

risposta

30

Si potrebbe utilizzare init:

App.Controller = Ember.Controller.extend({ 
    init: function() { 
    this._super(); 
    Ember.run.schedule("afterRender",this,function() { 
     this.send("foo"); 
    }); 
    }, 

    actions: { 
    foo: function() { 
     console.log("foo"); 
    } 
    } 
}); 
+0

intenzione di provare questo .. –

+0

Grazie mille ... il suo lavoro .. –

+3

la soluzione può causare l'errore di prova Asserzione" non riuscita: è stata attivata la modalità di test, che disabilita l'esecuzione automatica del ciclo di esecuzione. Dovrai avvolgere qualsiasi codice con effetti collaterali asincroni in una corsa ". Come camminare intorno a questo? – Roger