2013-02-18 43 views
2
$scope.myFunc = function(privilege){ 

    $scope.check = function(privilege){ 
     return ... 
    }; 

    $scope.$watch('check(privilege)',function(val){ 
     ... 
    }  
} 

我的特權變量在每次手錶檢查時都變得不確定(哪一個不能)?爲什麼我應該定義它的範圍變量,或者我錯過了Angular Js的任何東西?爲什麼Watch函數的角度Js參數應該是範圍變量?

回答

6

$watch方法(「watchExpression」)的第一個參數可以是一個Angular string表達式(即根據$ scope計算)或一個函數,它以$ scope作爲第一個參數調用。無法將privilege作爲第一個參數傳遞給作爲函數的watchExpression。

如果您不想在$ scope中存儲privilege值,您可以創建一個閉包。一個例子見Vojta's fiddle。 另請參見https://groups.google.com/forum/#!msg/angular/UJRxn_Y0Dd4/9ha38PC3PCwJ