繁体   English   中英

渲染和重新渲染路线,挂钩和Ember

[英]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: 00更改为1

从父级到子级, 反之亦然 ,从link-to帮助者都需要解决方案,这很清楚。 从父级到子级路由时,我已经表现出这种行为,反之亦然。

我要做的就是将父路由的此属性从0切换到1

UPDATE

我想通过在两条路线之间来回导航,基本上将foo变量从1切换为0 想象一下,单击这两条路径之间的link-to 10次​​,而每次看到父路径的属性都会更新为新值。 为什么这不是控制器中的简单钩子? 我想念什么?

徒劳尝试科

我已经完成了大量的搜索工作,并尝试了路由( beforeModelmodelsetupController )和控制器中的各种钩子。 我没有成功。 如果有的话,欢迎采用一种轻松解决此问题的方法。 如果我在这里缺少什么,我深表歉意。

类别索引路径

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM