2016-02-25 17 views
0

我從我的服務和scope.on中處理undo-redo-changed事件,但是沒有調用$ watch funciton。爲什麼?使用$ watch是否正確?這些代碼在drawModule服務索引變量改變時改變按鈕的狀態。 我的代碼是

$scope.$on('undo-redo-changed', function() {   
    $scope.canUndo = drawModule.canUndo() ? '' : 'disabled'; 
    $scope.canRedo = drawModule.canRedo() ? '' : 'disabled';   
}); 

$scope.$watch('canUndo', function(newValue, oldValue) { 
    $scope.canUndo = newValue; 
}, true); 

$scope.$watch('canRedo', function (newValue, oldValue) { 
    $scope.canRedo = newValue; 
}, true); 
+0

你爲什麼要看$然後將它設置爲新值?這沒有任何意義。 –

+0

我試圖通過更改$ scope.canUndo和$ scope.canRedo屬性來禁用按鈕。但是,如果我改變它們在$上它不起作用。所以我加了$ watch。但$ watch不叫。 – Radislav

回答

0

$watch參數被顛倒它是當前值和舊值。

用途:

$scope.$watch('canUndo', function(newValue, oldValue) { 
    $scope.canUndo = newValue; 
}, true); 

此外,如果canUndo是你不需要的$watch第三個參數設置爲true簡單的值(它是用來觀看陣列和嵌套結構)。

相關問題