2
$scope.myFunc = function(privilege){ 

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

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

私の特権変数は、すべての監視チェックで未定義になります(これは未定義です)? スコープ変数を定義する必要があるのはなぜですか、または Angular Js で何か見逃しているのですか?

4

1 に答える 1

6

$watchメソッドの最初のパラメーター(「watchExpression」) は、Angular 文字列式 ($scope に対して評価される)、または $scope を最初のパラメーターとして呼び出される関数のいずれかです。privilege関数である watchExpression に最初の引数として渡す方法はありません。

privilege$scope に値を保存したくない場合は、クロージャーを作成できます。例については、 Vojta のフィドルを参照してください。https://groups.google.com/forum/#!msg/angular/UJRxn_Y0Dd4/9ha38PC3PCwJも参照してください。

于 2013-02-19T15:23:12.147 に答える