8

私はAngular jsが初めてで、これが機能しない理由に対する答えをどこでも探しています。

ここに私の指示があります:

.directive('carrouselPreview', function () {
    return function (scope, element, attrs) {
        scope.$watch(scope.carouselPreview, function () {
            alert('changed');
        }, true);
    }
});

これは、この関数によって変更される scope.carouselPreview への変更を監視します。

$scope.showPreview = function(ind){
    $scope.carouselPreview = ind;
} 

この関数は間違いなく起動し、scope.carouselPreview を変更しますが、watch 関数は決して起動しません!

私はおそらくここでばかげていることに気づきましたが、私はすべてを見てきましたが、完全に問題ないようです.

誰かが今夜これを直すのを手伝ってくれたら、私はあなたを永遠に愛します!

4

1 に答える 1

13

への最初のパラメーター$watchは、文字列 (スコープのコンテキストで評価される) または関数です。だからあなたが欲しいのは:

scope.$watch("carouselPreview", function () {
    alert('changed');
}, true);

http://docs.angularjs.org/api/ng.$ro​​otScope.Scope#$watchを参照してください

于 2012-11-14T18:43:01.633 に答える