为什么这段代码不起作用?我正在为$ scope分配一个值,当页面呈现时,我看到5但是一旦定时器触发,该值就不会更新。我想知道原始5需要变成什么样的对象,以便Angular将观察它的变化。此外,如果有一种正确的方法来做这种事情,那将很高兴知道。
app.controller('Total', ['$scope', function($scope) {
$scope.total = 5;
setTimeout(function() {
$scope.total = 1300;
}, 3000);
}
]);
答案 0 :(得分:0)
问题是Angular不知道我为$ scope.total see the StackOverflow answer for more information on how binding works分配了一个新值。解决方案是使用$ scope。$ apply并将赋值包装在函数中。然后,Angular会将之前的值与新值进行比较,以触发正确的函数see an explanation with sample code of $scope.$apply here。
解决方案:
app.controller('Total', ['$scope', function($scope) {
$scope.total = 5;
setTimeout(function() {
$scope.$apply(function() {
$scope.total = 1300;
});
}, 3000);
}
]);
答案 1 :(得分:0)
使用$ timeout,然后你不需要使用$ apply。
不同的问题,但这里的答案相同,ng-repeat not growing with object