これは、アプリケーションのサイズと、ビューがレンダリングする要素の数に少し依存します。
編集:RecordArrayのisLoadedプロパティを正常に監視できる場合があります。詳細はこちら:https ://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/record_arrays/adapter_populated_record_array.js#L21
コンテンツとして単一のオブジェクトを持つビューに使用したオプションの1つは、次のようなものです。
MyApp.CustomView = Ember.View.extend({
content: null,
contentObserver: function() {
this.rerender();
}.observes('content')
}
ただし、ビューの内容がリストの場合、リスト内の各アイテムのビューを再レンダリングすることはほとんど意味がありません。
ただし、このアプローチは、すでに行っていることとかなり似ていると思います。
もう1つのアプローチは、EmberDataを使用して独自のアダプターを実装することです。このようにして、データのロードが終了したことをアプリケーションの残りの部分に伝えることができます。何かのようなもの:
MyApp.Adapter = DS.Adapter.create({
//Finding all object of a certain type. Fetching from the server
findAll: function(store, type, ids) {
var url = type.url;
jQuery.getJSON(url, function(data) {
store.loadMany(type, data);
});
//Perform some custom logic here...
}
}
これは機能するはずですが、本来あるべき/可能性があるほど一般的ではありません。
また、このコミットを確認することをお勧めします。これにより、1回限りのイベントを登録できます。
https://github.com/emberjs/ember.js/commit/1809e65012b93c0a530bfcb95eec22d972069745#L0R19