2012-11-14 10 views
8

私は角度jを初めて使用しています。なぜこれが動作しないのかについての答えをどこからでも探しています。

私はここに私のディレクティブを持っている:

.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 - しかし時計機能は決して発火しません!

私はおそらくここでは馬鹿になっていることに気がついていますが、私はすべてを見てきました。

私が今夜この問題を解決するのに役立つ人がいれば、私はあなたを永遠に愛していきます!

答えて

13

$watchの最初のパラメータは、文字列(スコープのコンテキストで評価される)または関数です。それでは、あなたがしたいことです:あなたはヒーローの先生ですdnc253

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

http://docs.angularjs.org/api/ng.$rootScope.Scope#$watch

+8

を参照してください!主があなたに何千もの処女を祝福してもらえますように、ありがとうございます。 –

+0

ありがとうございます。サイドコメントとして。キーフレーズが「スコープのコンテキストで評価されている」ことに注意してください。したがって、「carouselPreview」という分離スコープのプロパティがある場合は、スコープが想定されているため、使用する文字列「scope.carouselPreview」ではなく「carouselPreview」だけです。 – Blake

関連する問題