我是 AngularJS 的新手。我正在考虑使用该$timeout
服务。$timeout
我已经读过使用JavaScriptsetTimeout
函数的原因之一是因为在调用$scope
之前不会在 UI 中更新对变量的更改$scope.$apply
。虽然就是这个词,但我无法用实际代码确认这一点。我写了以下内容:
索引.html
<div ng-app="myApp">
<div ng-controller="myController">
<div>AngularJS Count: {{total1}}</div>
<br />
<div>setTimeout Count: {{total2}}</div>
<br />
<button ng-click="start()">start</button>
</div>
</div>
myController.js
var app = angular.module("myApp", []);
function myController($scope, $timeout) {
$scope.total1 = 0;
$scope.total2 = 0;
$scope.isStarted = false;
$scope.toggle = function() {
if (!$scope.isStarted) {
$scope.isStarted = true;
$timeout(ngUpdate, 1000);
setTimeout(jsUpdate, 1000);
}
};
function ngUpdate() {
$scope.total1 = $scope.total1 + 1;
}
function jsUpdate() {
$scope.total2 = $scope.total2 + 1;
}
}
在此代码示例中,对变量的更改会$scope
在 UI 中更新。我试图在代码中查看一个场景,其中通过setTimeout
函数进行的更改在调用之前不会更新 UI $scope.$apply
。我是不是误会了?或者是对 AngularJS 框架进行了更改,导致原始断言过时。