我在视图中有一个方法,如下所示。
testMethod : function() {
//run code
}.observes('property1')
该方法既可以通过调用直接触发,也可以由property1观察者触发。是否有可能在方法内部知道调用被触发的方式。谢谢
我在视图中有一个方法,如下所示。
testMethod : function() {
//run code
}.observes('property1')
该方法既可以通过调用直接触发,也可以由property1观察者触发。是否有可能在方法内部知道调用被触发的方式。谢谢
当调用观察者时,它接收 2 个参数:控制器对象,以及已更改并触发观察者的观察到的属性。
所以你可以像这样检查它:
testMethod : function() {
if(arguments.length === 2 && arguments[1] === 'property1'){
// you're triggered by property observer
} else {
// triggered directly
}
}.observes('property1')
当然,这可以被调用者欺骗..
我自己偶然发现了这一点,但没有办法这样做。我最终做了这样的事情:
testMethod : function() {
//run code
},
propertyObserver : function(){
this.testMethod();
}.observes('property1')