簡単な概要画面のために、App.Location.find() を実行するコントローラーをセットアップするルートを開発しました。
App.LocationsIndexRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('content', App.Location.find());
},
renderTemplate: function() {
this.render('locations.index',{into:'application'});
}
});
私は単純に、これはストアに行ってすべてのレコードを取得し、レコードの最新のビューを表示するだけだと単純に想定していました。
どうやらそうではありません....
- 外部プロセスがデータベースからのレコードの削除を開始すると、App.Location.find() はこれらの削除されたレコードを返し続けます。(ただし、REST 呼び出しでは表示されなくなりました)
- 外部プロセスがデータベースへのレコードの追加を開始すると、 App.Location.find() がそれらを取得します。
- Ember アプリ自体でレコード フォームを削除すると、モデルは正しく更新されます。
Ember アプリでこれをどのように処理すればよいですか? データベースにあるものすべてを最新の状態で表示したいと考えています。現在、最新のビューを取得するには、ページを更新する必要があります (F5)。linkTo ヘルパーを使用すると、古いデータが表示されます。
これは、私が EmberJS で完全に見逃していたもう 1 つのささいなことのようです。なぜそのように振る舞うかは、ドキュメントのどこかに記載されていますか?この動作の背後には有効な哲学があると思います。
私の概要画面は、単に最新のデータを表示することに関心があります。レコードが DB に存在しなくなった場合、モデルはそのレコードを返すべきではありません。
この問題が発生しているサンプル プロジェクトを Github に追加しました。