0

我在 angularjs 中使用 $resource 服务从服务器异步加载 json 内容。加载内容时,我会在页面上显示一个 gif 加载器。我需要知道异步请求何时完成,以便删除加载程序。我怎样才能捕捉到准备好的事件,以便我可以删除装载机?

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();
});
4

1 回答 1

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; }

于 2012-10-13T01:09:14.723 回答