在切换Emberjs中的路由时,引导程序组件(模型,选项卡,下拉列表)不起作用



bootstrap组件(模型,选项卡,下拉)在切换emberjs

中的路由时不起作用

我在我的application.hbs中有两个{{utlet}},一个用于登录,另一个用于所有其他页面。

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

最初,引导程序组件正常工作,如果我过渡到登录并返回其他路线,则其他路线中的组件不起作用。

之前工作的选项卡无法单击。下拉菜单无法单击。该模型在单击按钮时未显示。

如果我在这两个路线上都使用相同的插座,则可以正常工作。

在过渡变化上,ember彻底修改了DOM。这意味着在DOM结构的每一个更改中,您都必须重新初始化引导程序组件。

要解决此问题,您有两个选择。

  1. 实现自己的组件,并在didInsertElement钩上调用特定的引导初始化方法。
  2. 使用现有的Ember插件,例如Ember-bootstrap,该ember-bootstrap提供所有引导组件作为ember组件。

我会坚持2。

最新更新