在Ember如何在属性发生变化时调用控制器中的函数

时间:2013-03-20 15:44:42

标签: javascript templates binding controller ember.js

我希望每次`exampleProperty'更改时调用函数exampleFunction。 我应该如何设置?似乎最近发生了变化。我正在使用1.0.0-RC1。

模板:

   <div id="container">
      {{view Ember.TextField valueBinding="exampleProperty"}}
    </div>

控制器:

ExampleApp.ApplicationController = Ember.Controller.extend({

  exampleProperty: "example",

  exampleFunction: function() {
    console.log("exampleProperty was changed");
  }

});

2 个答案:

答案 0 :(得分:3)

您可以将exampleFunction定义为观察者。最直接的语法是在Function上使用'观察'方法:

exampleFunction: function () {
    console.log("property changed");
}.observes('exampleProperty')

您可以在Ember指南中阅读更多关于观察者的信息(以及更多信息):http://emberjs.com/guides/object-model/observers/

答案 1 :(得分:2)

您可以创建“观察”属性。

ExampleApp.ApplicationController = Ember.Controller.extend({

  exampleProperty: "example",

  exampleFunction: function() {
    console.log("exampleProperty was changed");
  }.observes("exampleProperty")

});