我有一个由3条路线组成的Ember应用程序:
router.route('territory', { path: 'localhost/app/territory/:tid' });
router.route('aggregator', { path: localhost/app/territory/:tid:/aggregator/:aid' });
router.route(territory, { path: 'localhost/app/territory/:tid/aggregator/:aid/item/:iid' });
可能的过渡是从区域到聚合器,从聚合器到项目,以及从项目到子项目。
子项使用相同的路线(第3条),只是在路线模型中更改了iID值。
我创建了一个 Action ,该 Action 允许用户使用一些逻辑进入特定的路线,最后运行命令:
model={
tid: "ttt"
aid: "aaa"
iid: "iii"
}
destination = 'item'; //the name of item route
controller.transitionToRoute(destination, model);
如果我处于商品 route ,并且想移至其他商品,则URL将更新,但页面内容不会更新。显然,如果我使用生成的URL刷新页面,则内容将更新。
问题出在哪儿?在过时的过渡方法中,还是我必须使用其他不同的方法?
重要提示:我正在使用EmberJS-V1.0.0-RC.1
最佳答案
不是 bug 只是emberjs中的正常情况,因为每条路线都有model
和setupController
。
模型函数用于从WS或数据模块异步检索必要的信息(是RSVP.Promise)。完成后,信息将传递到setupController
函数,在此处可以设置与当前路径 View 连接的 Controller 的属性。
每当我更改path的值而不更改路线的值时,仅会调用setupController
。
总而言之,就我而言,问题只是代码的组织问题。
关于ember.js - Emberjs : transitionToRoute in the same route with different model value,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15242794/