javascript
setInterval(function () {
$scope.params.txt += 1;
console.log($scope.params.txt )
},1000)
html
<textarea id="text" cols="30" rows="10">{{params}}</textarea>
在js的控制器里我改变params.txt的值为什么相应的视图并没有改变,而log出的数据改变了?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
angular JS的双向绑定的机理大概是在函数调用前记录下scope里的所有值,运行结束之后再检查一遍,以此比较scope里的值是否发生了变化,从而实现双向绑定。
但是
setTimeout、setInterval等函数里面对scope的修改是异步的,函数运行完之后scope并没有发生变化,所以自然也不会应用到view上。解决方法有两种:
在修改了scope里的值之后加上
$scope.apply();使用angular提供的
$interval或$timeout.`