次のようなビューにメソッドがあります。
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')