0
時選擇性控制角$手錶射擊我想用角$watch
檢查的變化在這樣一個對象:比較對象
$scope.$watch(function(scope) { return scope.selectedTopic },
function(newVal, oldVal){
if (newVal !== oldVal) {
$scope.hasChanges = true;
}
}, true);
的問題是,這個變量$scope.selectedTopic
是當前的佔位符主題在我的應用程序。因此,如果用戶選擇了另一個主題,應用覆蓋$scope.selectedTopic
完全有factory
:
TopicService.get(id).success(function(data){
$scope.selectedTopic.content = data;
});
所以我想有效地阻擋$watch
oldVal
VS newVal
比較,只有當factory
被調用。
我嘗試添加一個布爾變量關掉比較像這樣:
$scope.$watch(function(scope) {
if (scope.isLoadingFromFactory) return scope.selectedTopic
}, function(newVal, oldVal){
if (newVal !== oldVal) {
$scope.hasChanges = true;
}
}, true);
TopicService.get(id).success(function(data){
$scope.isLoadingFromFactory = false;
$scope.selectedTopic.content = data;
$scope.isLoadingFromFactory = true;
});
,但沒有奏效。有沒有辦法打開/關閉$ watch不等式測試?