引导模式中的两个Angular路由器出口 [英] Two Angular router-oulets in bootstrap modal

查看:56
本文介绍了引导模式中的两个Angular路由器出口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Angular应用程序中添加了Other模态

I have added Other modal in my Angular application both have different

< router-outlet></router-outlet>

之前的一个运行良好,但是在添加了具有不同路径的第二个模态后,第一个停止了工作.我尝试在路由器插座上使用不同的 name 属性,但似乎没有任何效果.如果我注释掉另一个,则一次只能工作.

Previous one was working fine but after adding 2nd modal with different routes 1st stopped working. i tried with different name attributes on router-outlets nothing seems to be working. only one is working at a time if i comment out the other one.

<button type="button" data-target="#settings2" data-toggle="modal" routerLink="setup_season">                         
   Season
</button>

<button type="button" data-target="#settings" data-toggle="modal" routerLink="setup_package">                         
  Package
</button>

第一个模态

 <div id="settings" class="modal fade" role="dialog">
      <div class="modal-dialog">

         <!-- Modal -->
      <div class="modal fade" id="myModal" role="dialog">
        <div class="modal-dialog">

          <!-- Modal content-->
          <div class="modal-content">
            <div class="modal-header">
              <button type="button" class="close" data-dismiss="modal">&times;</button>
              <h4 class="modal-title">Modal Header</h4>
            </div>
            <div class="modal-body">
                <router-outlet></router-outlet> // already tried with name attribute
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
          </div>

        </div>
      </div>

第二模式

<div id="settings2" class="modal fade" role="dialog">
  <div class="modal-dialog">

     <!-- Modal -->
  <div class="modal fade" id="myModal" role="dialog">
    <div class="modal-dialog">

      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
            <router-outlet></router-outlet> // already tried with name attribute
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>

    </div>
  </div>

推荐答案

您需要使用辅助路由,我将粘贴自己的代码的类似情况,并尝试对您的代码执行相同的操作:

You need to use auxiliary routes, I will paste a similar case of my own code, try to do the same with your code:

  <div class="side-panel">
      <!-- the auxiliary outlet -->
      <router-outlet name="sidePanel"></router-outlet>
  </div>

  <div class="main-content m-0 p-0">
      <!-- the primary outlet -->
      <router-outlet></router-outlet>
 </div>

路由配置应与此类似:

const routes: Routes = [
  {
    path: '',
    redirectTo: '/app/auth/login',
    pathMatch: 'full'
  },
  {
    path: 'app',
    children: [
       {
         path: 'main',
         component: MainComponent
       }, 
       {
         path: 'side-menu',
         component: SlidePanelComponent,
         outlet: 'sidePanel',  // You need to mention the name of the auxiliary route
       }
     ]
]

最后,您需要在routerLink中提及出口的名称,如下所示:

Finally, you need to mention the name of the outlet in the routerLink just like this:

  <a [routerLink]="[{ outlets: { sidePanel: 'side-menu'}}]">

这篇关于引导模式中的两个Angular路由器出口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆