0

我在视图中有一个方法,如下所示。

testMethod : function() {
   //run code
}.observes('property1')

该方法既可以通过调用直接触发,也可以由property1观察者触发。是否有可能在方法内部知道调用被触发的方式。谢谢

4

2 回答 2

1

当调用观察者时,它接收 2 个参数:控制器对象,以及已更改并触发观察者的观察到的属性。

所以你可以像这样检查它:

testMethod : function() {
    if(arguments.length === 2 && arguments[1] === 'property1'){
        // you're triggered by property observer
    } else {
        // triggered directly
    }
}.observes('property1')

当然,这可以被调用者欺骗..

于 2013-03-04T13:39:34.813 回答
0

我自己偶然发现了这一点,但没有办法这样做。我最终做了这样的事情:

testMethod : function() {
   //run code
},
propertyObserver : function(){
   this.testMethod();
}.observes('property1')
于 2013-03-04T13:16:27.610 回答