Emberであるルートから別のルートにパラメータを送信する「適切な」方法は何ですか? たとえば、次のように定義された 2 つのルートがあります。
this.resource('activities', { path: '/activities/:on_date' }, function() {
this.route('new');
});
ActivitiesRoute
ユーザーの場合、可能なアクティビティのドロップダウンが表示されます。彼らが何かを選択すると、次のように遷移しますActivitiesNewRoute
:
this.transitionToRoute('activities.new');
メソッドで使用可能な2番目のパラメーターがあることは知っていますが、transitionToRoute(route,model)
それはモデルを渡すためのものであり、これを他のパラメーターの受け渡しに転用すべきではないと想定しています。この場合、ドロップダウンの選択肢はAction
モデル ID の選択であり、ActivitiesNew のモデルはActivity
.
うまくいくかもしれない方法についての私の3つの推測は次のとおりです。
1) ルーターパラメータにする
ActivitiesNew
ルートの一部として「パラメーター」を含めるように変更できると思いました。
this.route('new', { path: '/new/:my_parameter' });
URL パスの一部になりたいと本当に思っているかどうかはわかりませんが、これが一般的な規則である場合は、それを受け入れます。
2) ハンドルを取得し、移行後
transitionToRoute 呼び出しの直後に、新しいコントローラー クラスのプロパティを設定できます。コントローラーがまだセットアップされるかどうかはわかりませんが、次のようなものを想像しています:
this.transitionToRoute('activities.new');
this.get('target').controllerFor('activities.new').set('my_parameter', myValue);
3) モデルパラメータを使用
this.transitionToRoute('activities.new',myValue);
これは大きなノーノーだと思います。これが機能するかどうかを知るためにEmberコードを調べていませんが、慣習に反しているように見えるので、これは私の「悪いオプション」です。