0

给定一个控制器,如:

App.SignInController = Ember.Controller.extend
  authenticated: false
  authenticatedDidChange: (() =>
    console.log @get('authenticated')
  ).observes('controller.authenticated')

这似乎不起作用,所以我一定不明白观察者是如何工作的。我认为它应该在 controller.authenticated 上创建一个观察者。但是,当我打电话时,@set("authenticated", true)什么都没有记录。

更新:我确实尝试更换controller.authenticated无济于事App.signInController.authenticated

我错过了什么?

4

1 回答 1

1

最终,我在 Quora 上偶然发现了这个 Yehuda Katz的答案。

App.friendsController = Ember.ArrayProxy.extend({
  contentDidChange: function() {
    // stuff here
  }.observes('content')
});

查看此答案后,我注意到该observes调用仅指定了没有controllerApp.signInController前缀的属性名称。将我上面的解决方案更改为observes('authenticated')正常工作。

App.SignInController = Ember.Controller.extend
  authenticated: false
  authenticatedDidChange: (() ->
    console.log @get('authenticated')
  ).observes('authenticated')
于 2012-10-27T17:06:10.783 回答