[英]Ember component is not re-rendering on change of @tracked variable
[英]Rendering and re-rendering routes, hooks and 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应用程序没有在应用程序中定义视图,只有模板。
当仅通过link-to
帮助程序从父级路由到子级路由(即不通过地址栏重新加载路由)时,如何更改父级路由控制器的简单属性,例如foo: 0
从0
更改为1
?
从父级到子级, 反之亦然 ,从link-to
帮助者都需要解决方案,这很清楚。 从父级到子级路由时,我已经表现出这种行为,反之亦然。
我要做的就是将父路由的此属性从0
切换到1
我想通过在两条路线之间来回导航,基本上将foo
变量从1
切换为0
。 想象一下,单击这两条路径之间的link-to
10次,而每次看到父路径的属性都会更新为新值。 为什么这不是控制器中的简单钩子? 我想念什么?
我已经完成了大量的搜索工作,并尝试了路由( beforeModel
, model
, setupController
)和控制器中的各种钩子。 我没有成功。 如果有的话,欢迎采用一种轻松解决此问题的方法。 如果我在这里缺少什么,我深表歉意。
类别索引路径
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
上进行调试,以确保我拥有正确的路由名称,但这应该可以解决问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.