ルート (特に、Emberjs プラグインを使用したクエリ パラメーター) に基づいて結果のリストを表示するアプリがあります。これらの結果はサーバーの応答から得られ、モデルでの find() 呼び出しが必要です。Ember.select ビューのドロップダウンを使用してクエリ パラメータを作成し、結果をフィルタリングしようとしていますが、これを行う方法が見つからないようです。
コントローラーからイベントを作成する方法 (またはできるかどうか) がわかりません。現在、Ember.select ビューから選択されたバインディングを受け取る自己作成のコントローラー (createWithMixins を使用) があります。
App.SlotsFiltersController = Ember.Object.createWithMixins({
weekday: null,
kind: null,
neighborhood: null,
filtersChanged: function() {
// I'd like to send an event to my current route here
}.observes('weekday', 'kind', 'neighborhood')
});
Ember.Select からの変更を適切に監視しますが、ルーターにはアクセスできません。
また、Ember.Select ビューをサブクラス化し、valueDidChange でイベントを送信しようとしました。これはルートに到達しますが、値はコントローラーでまだ更新されていません (古いデータでフィルタリングします)。
最後に、ルートによってインスタンス化されるコントローラーを拡張してみました。私はこれで成功しませんでした (オブザーバーイベントが発生していないようで、デバッグ方法がわかりませんでした)。
これを行う良い方法はありますか?私は間違った方向に進んでいるように感じ、永遠に検索した後、まだ最新の同様のものを見つけられませんでした(非グローバルApp.Routerを投稿)。