更新范围 属性 不会更新视图
Updating a scope property doesn't update the view
这个问题我已经看过很多次了,但我似乎找不到适合我的解决方案。我有一个简单的代码来更新 loading
属性 和两个 div,一个应该在加载为真时显示,一个在加载为假时显示。
$scope.loading = true;
function getTasks() {
$http.get(URL)
.then(function (response) {
//success
$scope.tasks = response.data;
}
, function () {
//failure
$scope.errorMessage = "Failed to fetch tasks";
$timeout(getTasks(), 5000);
})
.finally(function () {
$scope.loading = false;
});
}
HTML如下:
<div ng-show="{{ loading === true }}">
<i class="fa fa-spinner fa-w-16 fa-spin fa-lg"></i>
</div>
<div ng-show="{{ loading === false }}">
但是,即使 loading
确实更改为 false,它也不会更新视图。
我尝试过的一些事情是:
使用超时服务
$timeout(() => {
$scope.loading = false;
});
在将 loading 更改为 false 并在 apply 中调用函数后使用 $scope.$apply()
。
正在将 getTasks 函数添加到范围。
<div ng-show="{{ loading === true }}">
应该是 <div ng-show="loading === true">
或者只是
<div ng-show="loading">
loading
是在您的 scope
中定义的变量。您可以访问范围变量,因为它在您的 angular 指令中 ng-show
在您的情况下
这个问题我已经看过很多次了,但我似乎找不到适合我的解决方案。我有一个简单的代码来更新 loading
属性 和两个 div,一个应该在加载为真时显示,一个在加载为假时显示。
$scope.loading = true;
function getTasks() {
$http.get(URL)
.then(function (response) {
//success
$scope.tasks = response.data;
}
, function () {
//failure
$scope.errorMessage = "Failed to fetch tasks";
$timeout(getTasks(), 5000);
})
.finally(function () {
$scope.loading = false;
});
}
HTML如下:
<div ng-show="{{ loading === true }}">
<i class="fa fa-spinner fa-w-16 fa-spin fa-lg"></i>
</div>
<div ng-show="{{ loading === false }}">
但是,即使 loading
确实更改为 false,它也不会更新视图。
我尝试过的一些事情是:
使用超时服务
$timeout(() => { $scope.loading = false; });
在将 loading 更改为 false 并在 apply 中调用函数后使用
$scope.$apply()
。正在将 getTasks 函数添加到范围。
<div ng-show="{{ loading === true }}">
应该是 <div ng-show="loading === true">
或者只是
<div ng-show="loading">
loading
是在您的 scope
中定义的变量。您可以访问范围变量,因为它在您的 angular 指令中 ng-show
在您的情况下