Ember.js 余烬控制器是否可以绑定到其已更改的事件';她自己的财产?
给定一个控制器,如:Ember.js 余烬控制器是否可以绑定到其已更改的事件';她自己的财产?,ember.js,property-binding,ember-observable,Ember.js,Property Binding,Ember Observable,给定一个控制器,如: App.SignInController = Ember.Controller.extend authenticated: false authenticatedDidChange: (() => console.log @get('authenticated') ).observes('controller.authenticated') 这似乎不起作用,所以我一定不明白观察员是如何工作的。我认为它应该在controller.authentic
App.SignInController = Ember.Controller.extend
authenticated: false
authenticatedDidChange: (() =>
console.log @get('authenticated')
).observes('controller.authenticated')
这似乎不起作用,所以我一定不明白观察员是如何工作的。我认为它应该在controller.authenticated上创建一个观察者。但是,当我调用@set(“authenticated”,true)
时,不会记录任何内容
更新:
我确实尝试用App.signInController.authenticated
替换controller.authenticated
,但没有效果
我错过了什么?最终我在库拉偶然发现了这个耶胡达·卡茨
App.friendsController = Ember.ArrayProxy.extend({
contentDidChange: function() {
// stuff here
}.observes('content')
});
查看此答案后,我注意到,观察
调用只指定属性名称,没有控制器
或App.signInController
前缀。将上面的解决方案更改为只观察('authenticated')就行了
App.SignInController = Ember.Controller.extend
authenticated: false
authenticatedDidChange: (() ->
console.log @get('authenticated')
).observes('authenticated')
与计算属性一样,观察者的“路径”必须是相对于当前对象的,或者是全局命名空间的绝对路径。更好的解决方案是使用@ryan建议的方法。但是,如果您确定对象App.signInController已实例化,则依赖于App.signInController.authenticated可以工作。