0

私はモデルを持っており、$watch にバインドされた関数でいくつかの変更についてこのモデルを監視しています。そして、モデルを変更するngClickにバインドされた関数があります。その変更を追跡したくないので、ngClick でのモデル リスナーの呼び出しを防止できるようにする必要がありますが、モデルが ngClick バインド関数を除いて他の方法で変更された場合は、リスナーが機能する必要があります。

しかし、リスナーのバインドを解除したくはありません。ただ、現時点で実行を停止したいだけです。

例:

$scope.AlertIfChange = function(){
 alert('model changes!');
};

$scope.watch(model, AlertIfChange, true);

$scope.clickHandler = function(){
 $scope.model = "changed by click";
 -- some stuff to prevent AlertIfChange invocation --
};
4

2 に答える 2

0

次のようなことができます。

$scope.AlertIfChange = function(){
    if(!$scope.clickChanged){           
        alert("I was not changed by click");
    }
    else{
        alert("I was changed by click");
    }
};
$watch(model, AlertIfChange, true);

$scope.clickChanged = false;

$scope.clickHandler = function(){
    $scope.model = "changed by click";
    $scope.clickChanged = true;
}
于 2013-09-27T14:32:41.970 に答える