毎月のカレンダー表示があり、その月に予定されているすべてのイベントを一覧表示しようとしています。起動時に機能していません。イベントは表示されません。しかし、[次へ] (表示されていません) をクリックして月を切り替えると、フィルタリングが機能します。(そして、元の月に戻すと、必要に応じてイベントが表示されます。)
計算されたプロパティの使用にエラーがあると思われます。
質問: イベントがロードされた後に monthEvents 計算プロパティを起動するにはどうすればよいですか?
起動時に一度起動していることはわかっていますが、まだイベントがロードされていません。(終わったよ:
console.log(this.get('controllers.events.content.get('length'))
monthEvents 内から、カウントは最初は 0 です。
イベントが正常にロードされた後に再起動されることを願っています。(私は Ember Data を使用しており、イベントを ApplicationRoute にロードしています。これは間違いですか?)
MonthsEventsController は次のとおりです。
App.MonthEventsController = Ember.ArrayController.extend({
needs: ['events', 'month'],
monthEvents: function() {
var currentMonth = this.get('controllers.month.content');
return this.get('controllers.events.content').filter(function(event) {
return currentMonth.doesContainDate(event.get('startTime'));
});
}.property('controllers.events@each.startTime', 'controllers.month.content')
});
そして、イベントをロードする ApplicationRoute:
App.ApplicationRoute = Ember.Route.extend({
setupController: function() {
this.controllerFor('events').set('content', App.Event.find());
}
}
何か案は?実行ループを強制的に実行する必要があるコード内の特定の場所はありますか? (コード内のさまざまなランダムなポイントで Ember.run.sync() をいじってみましたが、まだ運がありません。) または、計算されたプロパティを別の方法で接続する必要がありますか?
ありがとう