直接导航到子模板时,车把绑定不在父模板上工作

时间:2014-08-28 21:46:53

标签: javascript ember.js handlebars.js ember-cli

仪表板模板:

<div id="main-container" class="container bgNotFaded" {{bind-attr class="faded:bgFaded"}}>

仪表板控制器:

export default Ember.ArrayController.extend({
   ...
   faded: false,
   ...
})

faded是我遇到问题的财产。

步骤:
导航到 - &gt; www.example.com/dashboard
然后浏览链接到 - &gt; www.example.com/dashboard/account
---此时一切正常,我的背景消失,faded设为真--- 接下来我刷新页面www.example.com/dashboard/account
---它已经坏了,即使加载accountRoute,背景也不会褪色---

我的accountRoute

export default Authenticated.extend({
    renderTemplate: function() {
        this.render({
            into: 'dashboard',
            outlet: 'modal'
        });
    },
    setupController: function(controller){
        var dashController = this.controllerFor('dashboard');
        dashController.set('faded', true);
        ....
    },
    ...
)};

我的路由器设置如下:

this.resource('dashboard', {path: '/'}, function() {
    ...
    this.resource('account', {path: '/account'}, function() {

所以我知道正在加载仪表板模板。事实上,如果我打开余烬检查员,我可以在dashboardController上看到属性faded == true但是bgFaded类不在我的渲染模板中。

问题为什么当我直接导航到子路径时,我父模板中的把手绑定不起作用?

感谢。

1 个答案:

答案 0 :(得分:1)

除了使用bind-attr之外,在元素上定义类属性时遇到了一些问题。试一试?

<div id="main-container" {{bind-attr class=":container :bgNotFaded faded:bgFaded"}}>