2013-02-26 83 views
0

部分代碼:AngularJS資源空車返回JSON

從服務部分:

$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

這是因爲一個$資源應該是一個對象,而不是一個原語,就像你的情況下的一個數字。如果資源可能是一個原始的,那麼你將有一個問題,能夠既做到這一點:

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。