AngularJS资源返回空json

时间:2013-02-26 02:51:29

标签: json resources angularjs

代码的一部分:

来自服务部分:

$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]中返回,但不是 [{},{},{},{},{},{},{},{},{},{}]。

有人可以帮忙吗?感谢

1 个答案:

答案 0 :(得分: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访问该ID。