我是angularjs的新手
我在" $scope.apply()
"中使用了setTimeout
功能,但似乎
我的$scope.apply()
正在运行两次。
setTimeout(function () {
$scope.$apply(function () {
$scope.proofName = cookie.getCookieId('assetName');
});
}, 3000)
请帮助我避免运行$ scope。$ apply()两次。感谢
答案 0 :(得分:1)
您可以使用setTimeout
代替$timeout
。在这种情况下,您不需要执行$apply
,因为摘要周期将在指定的延迟后运行。
$timeout(function () {
$scope.proofName = cookie.getCookieId('assetName');
}, 3000);
答案 1 :(得分:0)
以下是演示http://jsfiddle.net/d9yax4gd/ 你可以简单地删除$ scope。$ apply(),因为它在内部触发$ digest循环,$ time在内部使用它,所以以角度方式使用,否则它会抛出$ digest正在进行的错误,或者你会发现它被称为多个时间
var app = angular.module('myapp', []);
app.controller('ctrl', function($scope, $timeout){
$scope.proofName = '';
$timeout(function () {
$scope.proofName = cookie.getCookieId('assetName');
}, 3000);
});
希望这能帮到你