观察员在Ember不工作?

时间:2013-02-12 18:16:34

标签: javascript javascript-events ember.js

我无法让观察者真正在Ember.js做任何事情。基本上,我有一个Ember.Select下拉菜单,并希望将更多动作绑定到选择下拉列表中的值的事件。例如:

App.selectedPersonController = Ember.Object.create({
  person: null,
  personDidChange: function() {
    // do something here when the person changes
    console.log("PERSON CHANGED")
  }.observes('person')
});

即使'person'属性正在更新,也没有任何事情发生。有什么建议?

2 个答案:

答案 0 :(得分:6)

这是因为从版本pre4开始,您无法在Em.*.create()函数上设置属性或可观察对象。您必须首先使用.extend()函数并在其中设置所有属性和可观察对象,然后创建该对象。

举个例子,看一下使用扩展功能的jsfiddle。然后尝试仅使用create将其删除,您会看到该应用不再有效。

答案 1 :(得分:3)

或者使用createWithMixins()而不是create()