【发布时间】:2016-03-09 09:39:39
【问题描述】:
我在 Ember 应用(Ember 2)中定义了嵌套路由,如下所示;
this.route('main', function() {
this.route('step1', function(){
this.route('step1A');
});
});
现在我想导航到子路线并想触发“模型”钩子 所以我有
var routeName = 'main.step1.step1A';
self.transitionTo(routeName); //Tried Option1
self.get('controller').transitionToRoute(routeName); //Tried Option2
我的问题是,当我看到 URL 更改时,“模型”挂钩没有被触发。
如何强制触发“模型”挂钩?
根据文档,我认为该规则适用于具有动态段的路线。但我的路线很简单。
【问题讨论】:
-
我知道这不是最好的答案,但是如果您将模型加载到
setupController()会怎样?它始终运行,只要您可以先不显示数据并稍后更新模板,这可能是一种选择。 -
嗯...由于一些奇怪的原因,甚至 setupController 挂钩也没有被执行!
-
如果您使用参数(普通参数,如字符串,而不是对象)转换到路由“workflow.step1.step1A”会强制 ember 命中
model()钩子怎么办?当然,您不必使用它。 -
没有
setupContoller()被解雇的问题可能是Ember 为你生成它,如果你没有它。你有 workflow.step1.step1A 控制器吗? -
我确实有那个控制器,也尝试过手动传递字符串'workflow.step1.step1A'
标签: javascript ember.js