3

基本的な検索から戻ってきた残り火データモデルを手動で検査する必要があります(このモデルはテンプレートにバインドされていないため、代わりにロジックを動的に適用する必要があります)

これまで私は以下を試しました(運がない)

App.Foo.find().then(function(model) {
  console.log("here with the ember-data payload");
  console.log(model.get('length'));
}, function(error) {
  console.log("broken");
});

成功ブロックは起動しますが、常に0の結果を返すように見えますが、Chromeでネットワークタブを表示すると、使用しているこのPromiseフックの外部で機能する有効なjsonペイロードが表示されます。

ember-data rev 11でpromiseの解決をハイジャックすることは可能ですか?

4

2 に答える 2

5

は、モデルのApp.Foo.find()リスト、つまり a を返しますDS.AdapterPopulatedRecordArray。これは配列ではないため、長さプロパティはありません。ただし、モデルの配列であるcontentプロパティがあります。したがって、あなたの例では、console.log(model.content.length);それを機能させるために使用する必要があります:

App.Foo.find().then(function(result) {
  console.log("here with the ember-data payload");
  console.log(result.content.length);
  console.log(result.objectAt(0));
}, function(error) {
  console.log("broken");
});

は配列ではないため、[]演算子 onは使用できないことに注意してください。DS の Ember ガイドをDS.AdapterPopulatedRecordArray参照してください。代わりにを使用する必要があります。objectAtresult.objectAt(0);

于 2013-02-06T10:03:28.380 に答える
2

App.Model.find().then(function(notes) {console.log(notes.content.length)}) これは、アプリの正しい戻り値です。

サーバーから返されるデータに問題がある可能性がありますが、構文は正しいと思いますか? 何らかの理由で実際のレコードにシリアル化されていない可能性があります。再確認する価値があるかもしれません。

于 2013-02-08T10:27:46.937 に答える