Angularjs,$ resource:如何获取插入的对象?

时间:2013-05-12 08:04:24

标签: ajax angularjs callback angularjs-resource

我需要在插入完成后立即获取插入的对象。但这是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"

我没有插入文本,而是有某种哈希。顺便问一下,这是什么哈希?

在模板中有一点毫秒new_query是一个哈希值,$get完成后(成功)new_query插入文本。 如何在$get成功后直接插入文字?

1 个答案:

答案 0 :(得分:2)

new_query是一个SearchQueries实例,其中包含来自服务器的数据响应。看起来您的服务器以{query: "f7b1b2214bda4aa29b7ef5029c918590", id: 53}响应,这不是由Angular创建的。 $和$$属性来自SearchQueries原型。如果要打印new_query.$get()的结果,则应在回调函数中执行此操作:

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