それで、
私は 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('文字列')
});