0

コードの一部:

サービス部分から:

$resource('/Serializer/community/V1/latestPost/:start/:end,{
},{
    query: {method:'GET', 
            params:{start:new Date().getTime(), end:1}, 
            isArray:true}
})

コントローラー部分から:

Post['latestPost_timestamp'].query({start: minTime,end:1},function (data) { 
    alert(JSON.stringify(data));
});

結果:

コンソールまたはブラウザで開いたリンクから: [3993,3983,3974,3964,3954,3944,3934,3926,3920,3910]

コントローラから: [{},{},{},{},{},{},{},{},{},{}]

コントローラーで空の {} を返すのはなぜですか? [3993,3983,3974,3964,3954,3944,3934,3926,3920,3910] で返したいのですが、[{},{},{},{},{},{}, {}、{}、{}、{}]。

誰でも助けることができますか?ありがとう

4

1 に答える 1

1

これは、 $resource が、あなたの場合の数値のように、プリミティブではなくオブジェクトであるべきだからです。リソースがプリミティブである可能性がある場合、これを両方行うことができないという問題があります。

var posts = Post.query({start: minTime,end:1}, function() {
    for (var i = 0; i < posts.length; i++) {
        var post = posts[i];
        // If post here should be equal to for example 3993 in
        // your JSON, you wouldn't be able to call any methods
        // on it. The following two statements sort if illustrates it:
        assert(post === 3993);
        post.$save();
    }
});

このため、リソースはオブジェクトであるため、おそらくサーバーコードを変更して、[{id: 3993}, {id: 3983}, ...]代わりに次のようなものを返すようにする必要があります。これにより、post.id.

于 2013-02-26T07:28:09.970 に答える