我正在使用angularjs中的$ resource服务从服务器异步加载json内容。当内容加载时,我在页面上显示一个gif加载器。我需要知道ansyncronous请求何时完成,所以我可以删除加载器。如何捕获就绪事件以便我可以删除装载程序?
function PlaylistController($scope, $route, $http, Song,Artists,Albums,Drive,Children){
function render(){
$scope.songs = Song.list()
//Obviously this removes the loading class immediately
//I want to remove it when Song.list() is complete
$('body').removeClass('loading');
}
$scope.$on("$routeChangeSuccess", function($currentRoute, $previousRoute){
//When the route changes,update the $scope variables
render();
});
答案 0 :(得分:1)
你不应该在控制器内部进行DOM操作。
$scope.loading = true
和<body ng-class="loading && 'loading'">
呢?
当您将$scope.loading
设置为true时,loading
类将添加到正文中,当设置为false时,它将被删除。
如果你需要从子控制器更改它,将它放在一个对象(如$scope.data.loading = true
)内,或创建函数来改变它,如$scope.startLoading = function(){ $scope.loading = true; }