在父控制器上绑定属性时遇到麻烦

时间:2013-11-26 15:36:58

标签: binding properties ember.js controllers

我有父控制器和子控制器设置,以便子控制器可以从父控制器切换属性。

当我从子控制器切换属性时,它成功更新子视图并触发“onlineChanged”观察者并记录相应的值,但父视图不会使用正确的值更新。显示仍然是假的。

这是我的代码:

App.Router.map(function() {
    this.resource('Main', function() {});
});

App.MainController = Ember.Controller.extend({
    online: false

    onlineChanged: function () {
        console.log(this.get('online'));
    }.observes('online')
});

App.MainIndexController = Ember.Controller.extend({
    needs: ['Main'],
    actions: {
        toggleOnline: function() {
            this.toggleProperty('controllers.Main.online');
        }
    }
});

我的模板;

Main.hbs

{{outlet}}

Online: {{online}}

Index.hbs

<button {{action toggleOnline}}>toggle</button>

为什么控制台会记录相应的值,但Main.hbs无法正确更新?

1 个答案:

答案 0 :(得分:0)

主要在切换属性,需求和地图中应为小写。我不赞成为什么会破坏它。

此外,主代码中缺少逗号,因此我假设您已经删除了其他可能破坏它的逻辑。

http://emberjs.jsbin.com/EKepEMaD/1/edit