何时激活钩子将在ember app的路由级别运行

时间:2014-09-23 03:49:50

标签: ember.js operator-precedence

形成api文档,"当路由器进入路由时执行此挂钩。当路线的模型改变时,不执行它。"但由于一些混乱,我无法理解它。

例如,在这里,我有路由名称" xxx.yyy" 在路线xxx中,我设置了挂钩功能:' beforeModel'' model',' afterModel',' activate',' setupController&每个人都有#39; .debugger; 与yyy的路线相同。

然后,当我开始调试时,我发现调用顺序是:

'xxx:beforeModel'->'xxx:model'->'xxx:afterModel'->'yyy:beforeModel'->'yyy:model'->'yyy:afterModel'->'xxx:activate'->'xxx:setupController'->'yyy:activate'->'yyy:setupController'.

为什么yyy:beforeModel在xxx之前调用:activate ???

据我所知,如果xxx:afterModel返回一个promise,它会等到它满了(或切换到加载路径),在promise完成后,对我来说,这意味着我们几乎进入了xxx的路径,所以接下来要调用xxx:activate。但相反,下一个是yyy:beforeModel实际上

谁能告诉我原因?

1 个答案:

答案 0 :(得分:0)

转换到路线时,在激活/设置控制器之前,所有模型都会被解析。