我创建了基于 angularjs
angularjs
HTML:
<div ng-app="miniapp"> <div ng-controller="Ctrl"> My name is <input type="text"/> Val: {{val}} <br/> <button ng-disabled="val">Submit</button> </div>
JS:
var app = angular.module('miniapp', []); var glob; function Ctrl($scope) { glob = $scope; $scope.val = false; window.setTimeout(function() { $scope.val = true; }, 3000); } window.setTimeout(function() { glob.val = true; }, 3000);
如您所见,我尝试通过2种方式在3秒后更改val为true,但没有人为我工作。真的很奇怪 我错过了什么?
val
true
实际上,我尝试在从Ajax获得响应后更改值,但是假设应该是相同的问题。
谢谢,
这是我的示例:http : //jsfiddle.net/6uKAT/20/
尝试使用: $timeout
$timeout
Angular的window.setTimeout包装。fn函数包装在try / catch块中,并将任何异常委托给$ exceptionHandler服务。
$timeout(fn[, delay][, invokeApply]);
更新的小提琴
JavaScript
var app = angular.module('miniapp', []); function Ctrl($scope, $timeout) { $scope.val = false; $timeout(function(){$scope.val = true}, 3000); }