我希望在一段时间延迟后通过控制器更改绑定数据值,但不能正常工作,以下是一个非常简单的代码:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular.min.js"></script>
<script>
var app=angular.module('app',[]);
app.controller('controller',['$scope',function($scope){
$scope.color='red';
setTimeout(function(){
$scope.color='blue';
}, 0);
}])
</script>
</head>
<body ng-app="app">
<div ng-controller="controller">
{{color}} <input ng-model="color">
</div>
</body>
</html>
答案 0 :(得分:1)
不要使用setTimeout(function(){})
。改为使用$timeout
(Angular way)
app.controller('controller',['$scope','$timeout', function($scope, $timeout){
$scope.color='red';
$timeout(function(){
$scope.color='blue';
});
}])
同样对于0
毫秒,您可以省略延迟值
开始时$scope.color
的值为'red'
。 setTimeout
不会触发摘要周期,因此当您将color
更改为blue
时,它将不起作用。
$timeout
触发摘要周期,因此在HTML {{color}}
中我们会看到blue
答案 1 :(得分:0)
$timeout(function(){
$scope.color='blue';
}, 10000);
OR
$timeout(function(){
$scope.color='blue';
}, 20000);
使用第二个参数作为毫秒。你可以放任何你想要的价值。如果您想在使用10000后等待1秒钟,等等。