Javascript 当灰烬应用程序启动时加载内容的最佳实践
当应用程序启动时,我需要加载来自API的内容,然后将我得到的内容注入所有路由和控制器,以便能够在任何时候访问它们 我想知道在灰烬哪里是最好的地方 在初始化器中?我听说从那里使用商店不是一个好习惯。。。 在申请途径中?那么如何从所有路由和控制器访问它?是否使用此.model作为“应用程序”?这是个好习惯吗?Javascript 当灰烬应用程序启动时加载内容的最佳实践,javascript,ember.js,Javascript,Ember.js,当应用程序启动时,我需要加载来自API的内容,然后将我得到的内容注入所有路由和控制器,以便能够在任何时候访问它们 我想知道在灰烬哪里是最好的地方 在初始化器中?我听说从那里使用商店不是一个好习惯。。。 在申请途径中?那么如何从所有路由和控制器访问它?是否使用此.model作为“应用程序”?这是个好习惯吗? 谢谢。最好的位置是在应用程序路径中,您可以在beforeModel或afterModel/setupController挂钩中根据需要执行此操作。下面是一个beforeModel示例: rsv
谢谢。最好的位置是在应用程序路径中,您可以在beforeModel或afterModel/setupController挂钩中根据需要执行此操作。下面是一个beforeModel示例: rsvp将所有模型一起获取,并在继续之前等待它们,然后再继续,这将在then上发生。然后,我们将所有找到的模型分配给其匹配控制器上的model属性
要在afterModel钩子中执行此操作,它看起来会有所不同。我不知道是否使用应用程序路由和此。modelFor'application'是最好的或推荐的方法,但它对我在那里加载主数据有效。我们已注册了一个会话对象。注册'session:main',session;然后注入所有的控制器。注入'controller','session','session:main';。我们只保留有关已登录用户的信息。您到底想加载什么类型的数据,这是通过余烬数据还是不通过余烬数据加载?你的问题不够具体。在我的情况下,我需要将数据注入我所有的控制器和路由中,根据你的建议,我如何才能做到这一点?路由不存储数据;仅限控制器。注入是什么意思?我将从api获取会话信息并存储它们,然后我需要检查这些会话信息,例如在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);
});
}
});