0

angularjs で $resource サービスを使用して、サーバーから json コンテンツを非同期的にロードしています。コンテンツの読み込み中に、ページに gif ローダーを表示します。ローダーを削除できるように、非同期リクエストがいつ完了するかを知る必要があります。ローダーを削除できるように、ready イベントをキャッチするにはどうすればよいですか?

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.loadingtrue に設定するloadingとクラスが body に追加され、false に設定すると削除されます。

子コントローラーから変更する必要がある場合は、オブジェクト内に配置する$scope.data.loading = trueか( など)、関数を作成して変更します$scope.startLoading = function(){ $scope.loading = true; }

于 2012-10-13T01:09:14.723 に答える