我注意到在执行完全重新加载时,我的路由model
函数将在应用程序控制器init
方法之前触发。
如果这是设计使然,我怎样才能在调用模型之前执行代码(设置我的出站Ajax请求)?
答案 0 :(得分:0)
你应该使用ember的initializers
来从服务器加载一些数据/在调用应用程序控制器init
之前进行一些设置,初始化程序中的代码在其他任何事情发生之前执行你的余烬应用。如果你使用的是ember-cli,app / initializers上会有一个文件夹,你的初始化代码应该在那里。
答案 1 :(得分:0)
与模型关联的钩子(beforeModel
,model
和afterModel
)在路径控制器实例化之前被调用。
或许beforeModel
正是您所寻找的http://emberjs.com/api/classes/Ember.Route.html#method_beforeModel
根据文档,beforeModel
适用于
在尝试解析模型之前,需要先进行任何异步操作。
答案 2 :(得分:0)
引用:https://github.com/emberjs/ember.js/issues/15495#issuecomment-315464778
通常,路由模型在控制器之前执行。但是,维护人员告诉我们, 从来没有保证可以按照与路由结构相关的任何特定顺序创建控制器 。
注意:当存在与路由URL(v3.22)关联的查询参数时,我遇到了在路由模型之前调用控制器初始化的情况