我正在尝试绑定到控制器范围内的布尔变量,以指示是否应显示加载动画。但是,以下代码不起作用。里面的函数$timeout
运行了,但是视图没有更新。
当我使用 chrome 角度扩展检查范围时,我看到它ctrl.loading
是true
.
这是因为布尔值是 javascript 中的值类型,而不是引用类型?
我的猜测是视图实际上是绑定到的true
,而不是绑定到会改变的布尔值的位置。
如何让视图绑定到变量,而不是绑定到变量最初的值?
控制器:
function TestController($scope,$timeout){
"use strict";
var loading=true;
$timeout(function(){
loading=false;
}, 1000);
return {
loading:loading
}
}
模板:
<div>
<h1 ng-show="ctrl.loading">Loading</h1>
<h1 ng-hide="ctrl.loading">Not Loading</h1>
</div>
上面的代码只是一个例子,实际上我会在get请求wq返回后设置值。
$http.get().then(function() {
loading=false;
}, function() {
loading=false;
})
但效果是一样的。