我有一个由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值。
我创建了一个动作,允许用户使用某些逻辑移动到特定路径,最后运行命令:
model={
tid: "ttt"
aid: "aaa"
iid: "iii"
}
destination = 'item'; //the name of item route
controller.transitionToRoute(destination, model);
如果我在项目路线中并且我想移动到其他项目,则URL将更新,但不会更新页面的内容。显然,如果我使用生成URL刷新页面,内容将更新。
问题出在哪里?在过度使用的过渡方法中,还是我必须使用不同的东西?
重要提示:我正在使用EmberJS - V1.0.0-RC.1
答案 0 :(得分:0)
在emberjs中,错误不仅仅是正常情况,因为每条路线都有model
和setupController
。
模型函数用于从WS或数据模块异步地检索必要的信息(是RSVP.Promise)。完成后,信息将传递给setupController
函数,其中可能设置与当前路径视图相关的控制器属性。
每当我更改路径的值而不是路径时,只会调用setupController
。
总而言之,就我而言,问题只是代码的组织问题。