2013-05-12 47 views
1

插入完成後,我需要立即獲取插入的對象。但這是Angularjs $資源的一個問題。

module.factory('SearchQueries', function($resource){   
    return $resource('/instances/searches/:_id', {_id: '@id'}); 
}); 

var new_search = new SearchQueries({query: query}); 

new_search.$save(function(new_query){ 
    console.log(new_query); 
    console.log(new_query.id, new_query.query);       
    console.log(new_query.$get()); // This is undefined     
    $scope.searchQueries.push(new_query); 
});             

服務器響應:

{"query": "inserted text", "id": 53}             

new_query在控制檯印刷:

h {query: "f7b1b2214bda4aa29b7ef5029c918590", id: 53, $get: function, $save: function,  $query: function…} 
$$hashKey: "01J" 
id: 53 
query: "inserted text" 

new_query.id, new_query.query在控制檯印刷:

53 "f7b1b2214bda4aa29b7ef5029c918590" 

相反inserte的d文本我有一些散列。順便說一句,這是什麼哈希?

在模板中有一毫秒a new_query是散列,$get完成後(成功)new_query被插入文本。 如何在$get成功後直接插入文字?

回答

2

new_query是一個帶有來自服務器的數據響應的SearchQueries實例。看起來你的服務器響應{query: "f7b1b2214bda4aa29b7ef5029c918590", id: 53},這不是由Angular創建的。 $和$$屬性來自SearchQueries原型。如果你想從new_query.$get()打印結果,你應該在回調函數中執行:

new_query.$get(function(result){ 
    console.log(result); 
});