2 つの条件が満たされたときにハンドラーを実行する必要があります。
- ArrayController に関連付けられたビューが DOM に挿入されます
- arrayController コンテンツは、ストアを介して完全にロードされます
controller.isLoaded
のプロパティにオブザーバーを追加しようとしましたdidInsertElement
が、オブザーバー ハンドラーが呼び出されません。
didInsertElement: function() {
this.addObserver('controller.isLoaded', function() {
console.info('inserted the element and store is loaded');
});
},
メソッドの外側でオブザーバーをセットアップするとdidInsertElement
、ビューが dom に挿入される前に、オブザーバーがハンドラーを呼び出すのが早すぎます。
handler: function() {
var content, controller = this.get('controller');
console.info(controller.get('content').get('isLoaded'));
}.observes('controller.isLoaded')
また、上記のシナリオのハンドラーが 2 回呼び出され、そのたびに controller.get('content') が空の配列を表示する理由がわかりません