Ember.js Catch应用程序';就绪';应用程序外的事件
我需要在ember应用程序初始化后运行一些代码。我不想从Ember.js Catch应用程序';就绪';应用程序外的事件,ember.js,Ember.js,我需要在ember应用程序初始化后运行一些代码。我不想从App.ready调用此代码,以避免紧密耦合。有这样的东西会很好: App.on 'ready, -> console.log('do stuff') 但是它不起作用,因为Em.Application对象不可订阅,而且ready不是一个真正的事件,尽管文档这么说了实现这一点的一个简单方法是使用Ember.eventsmixin扩展应用程序类: App = Ember.Application.createWithMixins(Embe
App.ready
调用此代码,以避免紧密耦合。有这样的东西会很好:
App.on 'ready, -> console.log('do stuff')
但是它不起作用,因为
Em.Application
对象不可订阅,而且ready
不是一个真正的事件,尽管文档这么说了实现这一点的一个简单方法是使用Ember.events
mixin扩展应用程序
类:
App = Ember.Application.createWithMixins(Ember.Evented, {
ready: function() {
console.log('App ready');
this.trigger('appReady');
}
});
您可以在应用程序中的ready
事件中挂接,并使用this.trigger(…)
此时,您可以使用(…)在触发事件时收到通知
App.on('appReady', function() {
console.log('App already ready');
});
例如
希望有帮助。另一种可能是从应用程序的resolve回调调用代码
App.then(function(app) {
console.log("App is resolved, so it's ready");
});
从@直觉像素;)窃取的示例
编辑/注释:
App.then()
已被弃用,请参阅:
作为Ember.DeferredMixin弃用的一部分,在
应用程序实例本身已被弃用
您可以使用就绪挂钩或初始值设定项来延迟/提前就绪
同样好的是,我总是忘记这样一个事实,
App
可以:)是的,但是因为我不知道这是不是打算按原样使用,或者这是一个很好的副作用。无论如何,我们的两个解决方案都可以工作,所以这就给了我们选择:)注意:App.then()
已经被弃用,请参阅