在将我的列表更新为视图和$ scope中的 ng-repeat 时,我遇到了问题。$ apply来救援。我关注观察者。使用$ scope。$ apply()经常是一个好习惯吗?因为我在应用程序中有很多视图,必须在按钮点击时立即更新 PS:赞赏任何替代方案 我的应用程序的JS代码示例:
function onRefreshList() {
vm.showLoader = true;
GetDataService.getVotes(someParams).then(function(res) {
if (res){
vm.showLoader = false;
vm.voteList = res; //voteList will be updated on click of Refresh list
$scope.$apply(); //working fine with this }
}).catch(function (res) {
vm.showLoader = false;
console.log("There was an error will loading votes");
})
}
HTML:
<div ng-show="showLoader">
<ion-spinner icon="android" class="spinner-assertive"></ion-spinner>
</div>
<div ng-show="!showLoader" ng-repeat="vote in votesCtrl.voteList">
{{vote}}
</div>
答案 0 :(得分:1)
AngularJS默认为JavaScript async提供自己的包装器:
ng-click
或ng-keydown
$http
异步AJAX调用服务$timeout
和$interval
在我看来,自己使用$scope.$apply()
方法是一种不好的做法,并且不应在整个代码中随机使用此方法。如果必须,这意味着当您考虑应用程序/模块/组件时,您做错了。
了解更多here。