【问题标题】:In Ember How Should I Call a Function in the Controller Whenever A Property Changes在 Ember 中,每当属性更改时我应该如何在控制器中调用函数
【发布时间】:2013-03-09 19:48:03
【问题描述】:

我希望函数exampleFunction 在每次`exampleProperty' 改变时被调用。 我应该如何设置?似乎这种情况最近发生了变化。我正在使用 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");
  }

});

【问题讨论】:

  • Javascript,但不是 ember?,您可以使用“on”和“keyup”来调用回调。
  • 通过将 Ember 放在标题中来澄清问题。

标签: javascript templates binding controller ember.js


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    您将创建一个“观察”属性。

    ExampleApp.ApplicationController = Ember.Controller.extend({
    
      exampleProperty: "example",
    
      exampleFunction: function() {
        console.log("exampleProperty was changed");
      }.observes("exampleProperty")
    
    });
    

    【讨论】:

    • 对不起。 3 秒太晚了 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多