Tôi đang cố gắng hiển thị hoặc ẩn chỉ báo đang tải trên một nút khi một yêu cầu bận. Tôi làm điều đó với angle bằng cách thay đổi biến $ scope.loading khi một yêu cầu đang tải hoặc khi tải xong.
$scope.login = function(){
$scope.loading = true;
apiFactory.getToken()
.success(function(data){
})
.error(function(error){
})
.finally(function(){
$timeout(function() {
$scope.loading = false;
}, 0);
});
};
Trong giao diện người dùng:
<button ng-disabled="loading" class="button button-outline button-positive" type="submit">
Log in
<span ng-if="loading" class="ion-refreshing"></span>
</button>
Điều này hoạt động tốt, nhưng biểu tượng tải (làm mới ion) được hiển thị trong khoảng 2 giây, trong khi biến $ scope được cập nhật ngay lập tức. Tôi đã thử $ scope. $ Apply nhưng có vẻ không có gì sai ở đây, scope được cập nhật rất tốt và ngay sau khi có yêu cầu. Đó chỉ là biểu tượng không phản hồi đủ nhanh.
Cảm ơn đã giúp tôi hiểu điều này!