【问题标题】:Angular router-outlet child can't fill space角路由器插座子不能填充空间
【发布时间】:2017-05-12 09:46:18
【问题描述】:

我在用路由器插座填充所有可用空间时遇到问题。

我在我的应用程序中使用 angular/flex-layout。并且路由器加载的组件并没有占据所有可用的位置。

<div fxLayout="column" fxFlexFill>
  <maat-top-bar></maat-top-bar>
  <router-outlet fxFlex></router-outlet>
</div>

Screenshot of app & dom

router-outlet 占用空间而不是子组件。在屏幕截图上,组件是&lt;maat-home&gt;&lt;/maat-home&gt;。在 DOM 树中,该组件位于 router-outlet 之后。

我该怎么做才能让组件&lt;maat-home&gt;&lt;/maat-home&gt; 占用剩余空间?

谢谢!

【问题讨论】:

    标签: angular angular-ui-router angular2-routing angular-routing angular-flex-layout


    【解决方案1】:

    fxFlex 添加到&lt;router-outlet&gt; 可能不是您想要的。 路由器添加的组件被添加为兄弟,而不是&lt;router-outlet&gt;的子元素

    【讨论】:

      【解决方案2】:

      我找到了办法。 router-outlet 被隐藏,添加到 DOM 上的组件具有属性fxFlexFill 用于填充所有可用空间。

      <div fxLayout="column" fxFlexFill>
        <maat-top-bar class="top-bar"></maat-top-bar>
        <div fxFlex>
         <router-outlet class="hidden-router"></router-outlet>
        </div>
      </div>
      

      班级hidden-router

      .hidden-router {
        flex: 1 1 auto;
        display: flex;
        overflow: hidden;
      }
      

      还有组件

      <div fxFlexFill="">
        I filling all remaining space
      </div>
      

      【讨论】:

      • 我相信您可以只使用“fxFill”而不是 fxFlexFill="",或者至少在我的情况下这是可行的
      猜你喜欢
      • 2023-03-06
      • 2017-10-27
      • 2017-04-29
      • 2021-03-13
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      • 2020-02-23
      相关资源
      最近更新 更多