指令中的$ watch函数未在Angular JS中触发

时间:2012-11-14 18:41:37

标签: javascript angularjs

我是棱角分明的新手,并一直在寻找答案,为什么这不起作用。

我的指示在这里:

.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函数永远不会触发!

我意识到我可能在这里愚蠢,但我看了一遍,看起来很好。

如果今晚有人帮我解决这个问题,我会永远爱你!

1 个答案:

答案 0 :(得分:13)

$watch中的第一个参数是字符串(在范围的上下文中评估)或函数。所以你想要的是:

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

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

相关问题