1

ルート (特に、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を投稿)。

4

1 に答える 1