それで、
私は Ember アプリに取り組んでおり、紛らわしい問題が発生しています。インデックス ルートで、アプリは find() を実行し、次の配列を返します。
データセットそれぞれの詳細を表示するテンプレートへのリンク
データセットこれは、id で検索するようにリクエストが行われたときにサイドロードされます。(つまり、find(1)、ここで 1 は ID です。)
ID を持つ最初のリクエストは正常に機能し、データセット オブジェクトとそのサイドロードされたデータを返しますが、後続のリクエストは何もしていないようです。最初のデータセットの詳細が読み込まれた後に他のデータセットに移動しようとすると、サーバーは要求を認識しません。ただし、特定のデータセットからインデックスに戻ってから任意のデータセットに戻ると、リクエストが再度送信され (2 回も、これが関連する問題かどうかはわかりません)、機能します。言い換えると:
/# は機能する
/#/1 も機能する (または、最初にアクセスした ID である限り、他の ID も)
/#/1 の場合、/#/2 は機能せず、リクエストは送信されない
/#/1 が続く/# によって /#/2が機能し、/#/1 のデータを維持し、/#/2 の新しいデータを取得します。
特定のデータセット オブジェクトにアクセスしたときに、インデックスにハッキーなピットストップをせずに、すべての特定のデータセット オブジェクトを返すにはどうすればよいですか? どんなアドバイスでも大歓迎です、事前に感謝します!
コード:
-app.js
/**************************** * 応用 ************************/ var App = Em.Application.create(); App.Router.map(関数() { this.resource('application', {path:'/'}, function() { this.resource('dataset', {path: '/:dataset_id'}, function() { }); }); }); App.ApplicationRoute = Em.Route.extend({ モデル: 関数() { App.Dataset.find(); を返します。 } }); App.DatasetRoute = Em.Route.extend({ アクティブ化: 関数() { this.modelFor('dataset').reload(); } }); /**************************** * モデル ************************/ App.Store = DS.Store.extend({ アダプタ: DS.RESTAdapter.create({ URL: 'http://***.***.***.***:5000', 名前空間: 'api', シリアライザー: DS.RESTSerializer.extend({ primaryKey: 関数 (タイプ) { '_id' を返します。 } })) })) }); App.Dataset = DS.Model.extend({ データセット: DS.attr('string'), タイトル: DS.attr('string'), ポイント: DS.hasMany('App.Point') }); App.Point = DS.Model.extend({ データセット: DS.attr('string'), dataset_id: DS.attr('string'), 日付: DS.attr('日付'), 値: DS.attr('文字列') });