我有一个控制器,可以将异步数据加载到Ember主存储中 在加载时,它会显示一个加载微调器。完成加载后,它会显示数据。
我的问题是,我还想在加载数据和渲染模板后注入jQuery逻辑/绑定。
问题是:当模板被渲染/更新时会调用哪些钩子?
我尝试观察加载数据的时间,但是在渲染模板后它不能可靠地注入jQuery(见下文):
controllers/index.js
export default Ember.Controller.extend({
listReady: function() {
Ember.run.next(this, function() {
// jQuery logic
})
}.observes('model.stations.content.isLoaded'),
})
routes/index.js
export default Ember.Route.extend({
setupController: function(controller, model) {
var that = this;
controller.set('content', {
stations: that.store.find('station'),
others: that.store.find('other')
});
}
});
templates/index.js
{{#if model.stations.content.isLoaded}}
{{!--display the data--}}
{{else}}
{{!--display a loading spinner--}}
{{/if}}
答案 0 :(得分:2)
有两件事 - 在模型钩在路由和后模型钩子之前。 如果要在模型对象中加载数据后执行某些操作,则可以使用aftermodel挂钩。
你可以在这里阅读更多这些钩子 - http://guides.emberjs.com/v1.10.0/routing/asynchronous-routing/
对于加载微调器事物 - 您不需要在处理程序栏(模板)中显式编写逻辑,您可以在路由中执行此操作。 Ember仅提供装载路线。您可以参考以下链接获取更多信息
http://guides.emberjs.com/v1.10.0/routing/loading-and-error-substates/