1

挿入が完了した直後に、挿入されたオブジェクトを取得する必要があります。しかし、これは Angularjs の $resource の問題です。

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"

挿入されたテキストの代わりに、ある種のハッシュがあります。ところで、これは何のハッシュですか?

テンプレートでは、ミリ秒のビット anew_queryはハッシュであり、$get完了 (成功) した後、new_queryテキストが挿入されます。成功した直後に挿入されたテキストを取得する方法は?$get

4

1 に答える 1

2

new_querySearchQueriesサーバーからのデータ応答を持つインスタンスです。サーバーが で応答しているよう{query: "f7b1b2214bda4aa29b7ef5029c918590", id: 53}です。これは Angular によって作成されたものではありません。$ および $$ プロパティはSearchQueriesプロトタイプからのものです。結果を出力したい場合new_query.$get()は、コールバック関数で実行する必要があります:

new_query.$get(function(result){
  console.log(result);
});
于 2013-05-12T08:17:49.570 に答える