ロードされた最初のルートが 'index'、 'list'または 'list/index'である場合にうまく動作するEmberデモアプリケーションを持っていますが、ロードされた最初のルートが 'list/show'コードはhttps://github.com/DougReeder/beta-listです。デモはhttps://ember-demo.surge.shです。問題を確認するには、640pxより狭いウィンドウを設定し、サーフをhttps://ember-demo.surge.sh/list/5にしてください。詳細パネルではなく、リストパネルが表示されます。ルートが最初にロードされたときに、親要素にクラスを設定するにはどうすればよいですか?
経路が 'list/show'の場合、クラス 'panelList'と 'panelDetail'のdivもクラス 'right'を持つ必要があります。
panelListとpanelDetailが親の 'list'テンプレートによって作成されるため、これをテンプレートに設定できません。私がpanelListとpanelDetailを子テンプレート 'list/index'と 'list/show'に移動すると、 'list/index'から 'list/show'に行くと再描画され、ひどいパフォーマンスヒットになります。
現在、私は 'didTransition'アクションを使用してクラス 'right'を切り替えます。これは、 'list/index'から 'list/show'へ、 'list/show'が初期ルートのときに両方とも呼ばれます。残念ながら、 'list/show'が最初のルートである場合、 'didTransition'が呼び出されたときにDOM要素は存在しません。
私は解決策に二つの経路を思い描くことができますが、どちらかを実装する方法がわからない:
クラストグルDOM要素が存在した後に発生したいくつかのアクションに「正しいです」。
'list'テンプレートに条件コードを挿入します。実際の経路が 'list/show'の場合は、 'panelList'と 'panelDetail'にクラス 'right'を設定します。
提案ですか?
githubでコードを更新したと思います。もはや 'didTransition'フックをもう使用していませんか?あなたはまだあなたの助けが必要であるかどうかについての更新を与えることができますか? – alptugd