我需要在初始化ember应用程序后运行一些代码.我不想调用此代码App.ready以避免紧耦合.有这样的事情会很好:
App.on 'ready, -> console.log('do stuff')
Run Code Online (Sandbox Code Playgroud)
但它不会起作用,因为Em.Application对象不是可订阅的,ready尽管文档说的是这样但事实并非如此
一个简单的方法就是Application使用Ember.Eventedmixin 扩展你的类:
App = Ember.Application.createWithMixins(Ember.Evented, {
ready: function() {
console.log('App ready');
this.trigger('appReady');
}
});
Run Code Online (Sandbox Code Playgroud)
并且您在ready应用程序内部挂起事件并使用触发自定义事件this.trigger(...)
此时,您可以使用.on(...)在触发事件时收到通知.
App.on('appReady', function() {
console.log('App already ready');
});
Run Code Online (Sandbox Code Playgroud)
示例演示.
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
689 次 |
| 最近记录: |