nor*_*tpy 4 javascript angularjs ng-bind
为什么这个小角度模块在ng-bind更改属性时无法更新视图?
<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>
Run Code Online (Sandbox Code Playgroud)
我期待在5秒之后输出Hello Jon因它保持不变而改变Hello Whirled.为什么是这样?我还需要做其他事吗?
K.T*_*ess 11
使用$interval服务吧
这里的Angular的window.setInterval包装器是DOC
$interval(function(){
vm.name = 'Jon';
}, 1000);
Run Code Online (Sandbox Code Playgroud)
别忘了注入$interval,
.controller('ExampleController', ['$scope', $interval, function($scope, $interval) { ....
Run Code Online (Sandbox Code Playgroud)
当使用setInterval它超出角度范围时,你需要在$interval这里使用.$interval是针对范围执行的,
或使用 $scope.$apply()
window.setInterval(function(){
vm.name = 'Jon';
$scope.$apply();
}, 5000);
Run Code Online (Sandbox Code Playgroud)
$ apply可以将更改与摘要周期集成
| 归档时间: |
|
| 查看次数: |
4895 次 |
| 最近记录: |