如果目标(包括动态ID)与当前路由匹配,是否有一般方法(即在应用程序路由器中)中止转换?
我尝试挂钩到willTransition但是我发现的transition.params似乎包含了当前的id,我没有什么比较它们。
答案 0 :(得分:1)
过渡的params
属性将引用当前路线的参数,而不是目标。您需要的是通过其providedModels
属性查看为转换提供的模型。您的代码应如下所示:
willTransition: function(transition) {
if ((this.get('routeName') === transition.targetName) &&
(this.get('currentModel') === transition.providedModels[transition.targetName])) {
transition.abort();
return;
}
// ... other code here ...
}
答案 1 :(得分:0)
我刚在我的应用程序中对此进行了测试,我认为它可以满足您的需求。基本上,您可以针对控制器的job_id
测试参数中的model.id
。
App.JobRoute = Ember.Route.extend({
actions: {
willTransition: function(transition) {
if (this.controller.get('model.id') == transition.params.job_id) {
transition.abort();
}
}
}
});