一尘不染

延迟后如何使用angularjs更改值?

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秒后更改valtrue,但没有人为我工作。真的很奇怪 我错过了什么?

实际上,我尝试在从Ajax获得响应后更改值,但是假设应该是相同的问题。

谢谢,

这是我的示例:http :
//jsfiddle.net/6uKAT/20/


阅读 214

收藏
2020-07-04

共1个答案

一尘不染

尝试使用: $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);       
}
2020-07-04