为什么我不能在View中观察state属性

时间:2013-11-18 00:04:37

标签: view ember.js state observers

为什么我不能这样做:

App.FullsizeView = Ember.View.extend({
  stateChange: function () {
    console.log(this.state)
  }.observes('state')
});

错误: 断言失败:您必须使用Ember.set()来访问此属性(of)

非常感谢!

2 个答案:

答案 0 :(得分:2)

状态变量与Ember冲突(在1.2和1.3.0-beta.4版本上检查)。尝试在代码中重命名state和stateChange。

同样的问题发生在我的观点 -

App.ActionBarView = Ember.View.extend({
    templateName: "action-bar",
    stateBinding: "App.accessBarModel"
});

将stateBinding替换为“barStateBinding”解决了这个问题。

答案 1 :(得分:0)

Ember保留state属性以跟踪视图的内部状态(preRenderinBufferhasElementinDOM,{{1 }})。这是不可观察的。

如果要跟踪destroying的其他概念,请使用其他属性名称。如果你有一个用例你想要观察Ember的state视图属性,我会有兴趣听到它。