我是棱角分明的新手,并一直在寻找答案,为什么这不起作用。
我的指示在这里:
.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函数永远不会触发!
我意识到我可能在这里愚蠢,但我看了一遍,看起来很好。
如果今晚有人帮我解决这个问题,我会永远爱你!
答案 0 :(得分:13)
$watch
中的第一个参数是字符串(在范围的上下文中评估)或函数。所以你想要的是:
scope.$watch("carouselPreview", function () {
alert('changed');
}, true);