确定。我有一个关于ember如何处理路由重新渲染的简单问题......
-------------------------------
Ember : 1.8.1
Ember Data : 1.0.0-beta.12
Handlebars : 1.3.0
jQuery : 1.11.2
-------------------------------
router.js
this.resource('categories', {path: '/categories'}, function(){
this.resource('category', {path:'/:cid'});
});
我有两个非常简单的嵌套模板。一个名为categories
,一个名为category
。它们的工作方式与您期望的一样。 然而我的ember应用程序没有在应用程序中定义的视图,只有模板。
如何从父路线通过{{仅帮助(即不通过地址栏重新加载路线)?
解决方案需要在从父母到孩子的时候工作,反之亦然,所有这些都来自foo: 0
助手,只是为了清楚。从父母到儿童的路线,我已经采取了这种行为,反之亦然。
我想要做的就是将父路线的此属性从0
切换为1
我希望通过在两条路线之间来回导航,将link-to
变量从link-to
切换到0
。想象一下,点击这两条路线之间的1
10次,只看到父路线的属性每次都更新为新值。 为什么这不是控制器中的简单钩子?我缺少什么?
我已经完成了一大堆谷歌搜索,并在路线(foo
,1
,0
)和控制器中尝试了很多不同的挂钩。我没有成功。如果有的话,欢迎一种解决这个问题的简单方法。如果我在这里遗漏了一些东西,我很抱歉。
答案 0 :(得分:1)
类别索引路线
afterModel: function(model, transition){
if(Ember.isEqual(this.controllerFor('application').currentRouteName, "categories.index"))
{
this.controllerFor('categories.index').set('foo', 0);
}
}
类别路线
afterModel: function(model, transition){
if(Ember.isEqual(this.controllerFor('application').currentRouteName, "category"))
{
this.controllerFor('categories.index').set('foo', 1);
}
}
在每个页面上的this.controllerFor('application').currentRouteName
上粘贴调试,以确保我有正确的路线名称,但这应该可以做到这一点