渲染和重新渲染路线,钩子和灰烬

时间:2015-01-15 22:04:28

标签: ember.js ember-data

确定。我有一个关于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次,只看到父路线的属性每次都更新为新值。 为什么这不是控制器中的简单钩子?我缺少什么?

Vain Attempts Section

我已经完成了一大堆谷歌搜索,并在路线(foo10)和控制器中尝试了很多不同的挂钩。我没有成功。如果有的话,欢迎一种解决这个问题的简单方法。如果我在这里遗漏了一些东西,我很抱歉。

1 个答案:

答案 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上粘贴调试,以确保我有正确的路线名称,但这应该可以做到这一点