1日分のアクティビティを管理するアレイコントローラーActivitiesControllerがあります(フルセットではありません)。modelのプロパティをActivitiesRoute次のように設定しました。
return this.store.find('activity', {on_date: params.on_date});
これにより適切なレコードが引き戻され、Ember デバッガー内でそれらすべてを確認できますが、何らかの理由でこれらのレコードをテンプレートで使用できません ( activities.hbs)。それは私を困惑させましたが、実際にはとにかく最終的な解決策ではありません(私はそれがうまくいくと思っていました).
私が実際にやりたいことは、指定された日付にフィルター処理されたローカル Activityレコードの配列をコントローラーのコンテンツで管理することです。このフィルタリングされた配列は、更新クエリへの非同期呼び出しに基づいて定期的に更新されます: find('activity', {on_date: this.get('on_date'), since: this.get('since');.
その説明が理にかなっていることを願っています。SOに関する他のクエリを調べたところ、有望なスタートがいくつかありましたが、答えはすべて古くなっているようで、このナットを解くのに役立つものを見つけることができました.
要約すると、私はしたい:
- コントローラーを、特定の日付に対応するローカル レコード
contentのアクティブ フィルターにします。Activity - コントローラーに自動的に表示されるモデルに追加のレコードを非同期にプッシュできるようにします (それらが適切な日付であると仮定します)。
余談ですが、現在のmodelフックがアクティビティ テンプレートで利用できない理由を知りたいです。
- - - - - - - アップデート - - - - - - -
モデルフックでこれを試しました:
return this.store.filter('activity',function(activity){
var itemDate = new Date(activity.get('start_time'));
itemDate = moment(itemDate).format('YYYY-MM-DD');
return itemDate === params.on_date;
});
これは、@Bradley の提案と一致している必要があります。時間コンポーネントを切り詰める必要があったため、moment.js ライブラリを使用してそのロジックを追加しました。これはエラーをスローしませんが、サーバー自体からレコードをプルすることもありません。そのため、次のコード行をモデル フックに追加しました。
this.set('activities', this.store.find('activity', {on_date: params.on_date}));
デバッガーを使用すると、 にとして設定されたActivityRouteプロパティがあり、そのプロパティの長さがその日のアクティビティ数である 15 であることがわかります。activitiesDS.PromiseArrayactivities

また、currentModelofActivityRouteが a に設定されているように見えDS.FilteredRecordArray、適切な 15 レコードも含まれていますが、私のハンドルバー テンプレートはまだそれを反復することができません。これは、のcontentプロパティがActivityController設定されていないためだと思います。この状況で Ember がこのステップを実行しないのはなぜですか? これを強制する必要がありますか、それともシステムにからかう必要があるグレムリンがありますか?