アプリケーション ルーティングを使用してすべてのモーダルをレンダリングしようとしていますが、モーダルを閉じた後に前の状態に戻る適切な方法がわかりません。
基本的なセットアップは次のとおりです。
モーダル ダイアログを表示するために使用しているアプリケーション テンプレートにアウトレットがあります。
次のようになります。
{{ outlet modal }}
私のルート マッピングでは、個々のモーダルのフックを定義しました。たとえば、私のヘルプ ダイアログは次のように表示されます。
App.HelpRoute = Ember.Route.extend({
renderTemplate: function(controller, model) {
this.render({ outlet: 'modal' });
}
});
現在、URI を使用してモーダルを表示できます。
foo.com/#/help
jQueryを使用してモーダルを閉じるフックがあります:
$('#modalHelpWindow').modal('hide');
しかし、要素を隠しているだけなので、これはあまり役に立ちません。解雇時にURIを更新する必要があります。もう一度同じルートをたどると、モーダルはすでに非表示になっていて、表示されません。
モーダルを閉じて、アプリケーションを以前の状態に戻すには、どの方法を使用すればよいですか? history.back() を使用する必要がありますか?
注、私はこのSOの質問を認識していますが、プログラムで作成されたビューにはコントローラーが適切に関連付けられていないため、解決策は推奨される「ember」の方法ではありません Emberルーターv2でモーダル状態に出入りする正しい方法は何ですか?