我需要在应用程序启动时加载来自我的API的内容,然后将我得到的内容注入所有路由和控制器,以便能够随时访问它们。
我想知道在恩伯最好的地方在哪里?
this.modelFor('application')
?这是一个好习惯吗?感谢。
答案 0 :(得分:0)
最好的位置是ApplicationRoute
,您可以根据需要在beforeModel
或afterModel
/ setupController
挂钩中执行此操作。这是一个beforeModel
示例:
ApplicationController = Ember.ObjectController.extend({
beforeModel:function() {
var self = this;
var rsvp = Ember.RSVP.hash({
fruits: self.store.find('fruit'),
candies: self.store.find('candy'),
meats: self.store.find('meats')
}};
rsvp.then(function(models) {
self.controllerFor('fruits').set('model',models.fruits);
self.controllerFor('candies').set('model',models.candies);
self.controllerFor('meats').set('model',models.meats);
});
}
});
rsvp
将所有模型一起提取并等待它们先于then
继续发生。然后,我们将所有找到的模型分配给匹配控制器上的model
属性。
要在afterModel
挂钩中执行此操作,它看起来会有所不同。