0

私はこのサービスを持っています:

factory('Post', function($resource) {
    return $resource('/api/post.json', {},
        {
            query: {method:'GET', isArray: false}
        }
    );
})

そして私はこのコントローラーを持っています:

function PostsCtrl($scope, Post) {
    // init
    $scope.page = 0;
    $scope.page_has_next = true;

    $scope.loadMore = function() {
        if($scope.page_has_next) {
            $scope.posts = Post.query({page: ++$scope.page},
                function(data) {
                    $scope.page_has_next = data.has_next;
                }
            );
        }
    }

    $scope.loadMore();
}

これは問題なく機能し、実行されるたびloadMore()に、ページがなくなるまでモデルが次のページで更新されます。ただし、新しい投稿のセットを現在のモデルに置き換えるのではなく追加したいのですが、どうすればよいですか?

4

1 に答える 1

4

投稿が配列であると仮定すると、次のようになります。

$scope.posts = $scope.posts.concat(Post.query({page: ++$scope.page})

これは、新しい投稿に古い投稿との重複がない場合にのみ機能します。重複がある場合は、配列をトラバースして、新しい投稿のみをプッシュする必要があります。

于 2012-11-08T08:40:19.597 に答える