gpt4 book ai didi

javascript - 为什么 AngularJS ng-bind 不更新 View

转载 作者:搜寻专家 更新时间:2023-11-01 04:54:07 25 4
gpt4 key购买 nike

ng-bind 属性改变时,为什么这个小 Angular 模块不能更新 View ?

<body ng-app="bindExample">

<script>
angular.module('bindExample', [])
.controller('ExampleController', ['$scope', function($scope) {
var vm = this;
vm.name = 'Whirled';
window.setInterval(function(){ vm.name = 'Jon';}, 5000);
}]);
</script>

<div ng-controller="ExampleController as vm">
Hello <span ng-bind="vm.name"></span>!
</div>
</body>

我预计 5 秒后输出会更改 Hello Jon,因为它停留在 Hello Whirled。为什么是这样?我还需要做其他事情吗?

最佳答案

使用 $interval 为其服务

Angular's wrapper for window.setInterval here is the DOC

$interval(function(){
vm.name = 'Jon';
}, 1000);

不要忘记注入(inject) $interval 作为,

.controller('ExampleController', ['$scope', $interval, function($scope, $interval) { ....

当使用 setInterval 时,它超出了 Angular 范围,所以你需要在这里使用 $interval$interval 针对作用域执行,


或使用 $scope.$apply()

window.setInterval(function(){
vm.name = 'Jon';
$scope.$apply();
}, 5000);

$apply enables to integrate changes with the digest cycle

this answer would be helpful

关于javascript - 为什么 AngularJS ng-bind 不更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28427437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com