2015-06-17 7 views
10

एम्बर फ्रेमवर्क के लिए नया हूँ। मैं केवल एक फ़ंक्शन निष्पादित करना चाहता हूं जो प्रतिपादन पूर्ण होने पर क्रियाओं के हुक के अंदर परिभाषित किया गया हो।एम्बर नियंत्रक के बाद कार्रवाई कैसे करें

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

लेकिन उपरोक्त कोड काम नहीं कर रहा है। मैं सिर्फ यह जानना चाहता हूं कि foo() के बाद रेंडर चलाने के लिए संभव है?

उत्तर

30

आप 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

यह कोशिश करने के लिए जा .. –

+0

बहुत बहुत शुक्रिया ... अपने काम कर रहे .. –

+3

समाधान कारण हो सकता है परीक्षण त्रुटि "अभिकथन में विफल: आप परीक्षण मोड को चालू किया है, जिसने रन-लूप के ऑटोरन को अक्षम कर दिया। आपको किसी भी कोड को रन में एसिंक्रोनस साइड इफेक्ट्स के साथ लपेटने की आवश्यकता होगी "। इस के आसपास कैसे चलना है? – Roger

संबंधित मुद्दे