【发布时间】:2014-09-22 20:10:39
【问题描述】:
我正在尝试在角度超时后触发 $watch:
我的控制器
.controller('MyCtrl', ['$scope', function ($scope) {
$scope.chickens = ["Jim", "Joe", "Fred"];
$scope.chickens.push("Steve");
setTimeout(function () {
$scope.chickens.push("Larry");
$scope.$apply();
}, 500);
}])
然后将 $watch 连接到我的指令的链接函数中:
我的指令链接
link: function (scope, element, attrs) {
scope.$watch('chickens', function (newChickens, oldChickens) {
$(element).html('');
newChickens.forEach(function (chicken) {
$(element).append($('<li/>', {
'text': chicken
}));
});
});
}
$watch 似乎只在前四个元素时触发一次,在添加第五个元素后它永远不会触发。我尝试在那里添加$scope.$apply() 以应用更改。好像没用。
这里是 Fiddle 的示例。在这种情况下,我将不胜感激。谢谢!
【问题讨论】:
标签: javascript angularjs