2016-06-24 7 views
0
内のルート

ブートストラップコンポーネント(モデル、タブ、ドロップダウン)を切り替えるときに動作していないが動作していない私は2つの{{出口}を有します}私のapplication.hbsでは、ログイン用と他のすべてのページ用です。私は、ログインしてから他のルートのコンポーネントが動作していない他のルートに戻ってきて移行する場合 ブートストラップコンポーネント(モデル、タブ、ドロップダウン)EmberJs

{{#if isLoggedIn}} 
    <div class="main">{{outlet}}<div> 
{{else}} 
    <div class="login">{{outlet}}</div> 
{{/if}} 

は、最初のブートストラップコンポーネントは、正常に動作しています。

以前に動作したタブはクリックできません。 ドロップダウンメニューはクリックできません。 ボタンをクリックするとモデルが表示されません。

両方のルートに同じコンセントを使用すると、正常に動作します。

答えて

1

移行の変更時に、emberはDOMを大幅に変更します。これは、DOM構造の変更ごとに、ブートストラップコンポーネントを再初期化する必要があることを意味します。

この問題を解決するには、2つの方法があります。

  1. 独自のコンポーネントを実装し、didInsertElementフックに固有のブートストラップ初期化メソッドを呼び出します。
  2. すべてのブートストラップコンポーネントをemberコンポーネントとして提供する既存のemberアドオン(ember-bootstrapなど)を使用します。

私は方法2に固執します。

関連する問題