router-outlet占用页面上的额外空间(Angular 2)

Shu*_*sky 14 markup router angular

这是一个有趣的问题,我有点无视,直到现在.似乎Angular2在指令标记内呈现内容.但是,对于路由器插座,它恰好就像一个兄弟姐妹.

我的第一个问题是:为什么?只是出于兴趣.

我不会太担心,但它现在实际上导致我的应用程序出现问题.我有两个嵌套的出口,由于一些莫名其妙的原因,孩子一个在页面上占据15px的高度,并不重要我做什么,我无法摆脱它.(见截图) 在此输入图像描述

我所描述的确是如此,或者我只是做错了什么?此外,我不知道在这一点上如何处理这个,搜索到了所有,没有找到任何东西.

谢谢你的帮助.

这里更新是我的文件:

@import "../../node_modules/bootstrap-less/bootstrap/bootstrap";
@import "../../node_modules/font-awesome/less/font-awesome";
@icon-font-path: "./bootstrap/fonts/";
@fa-font-path: "./font-awesome/fonts";
@import "rrm.less";

html, body {
  height: 100% !important;
}
body {
  padding-top: 80px;
}
.load-container {
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  .loaing {
    position: fixed;
    left: 50%;
    top: 35%;
    z-index: 1000;
    height: 31px;
    width: 31px;
  }
}
.top-navbar {
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  background-color: #FFFFFF;
  height: 80px;
  &.floating {
    .box-shadow(0 1px 3px rgba(0,0,0,.25));
  }
  .navbar-brand {
    height: auto;
    img {
      height: 60px;
    }
  }
  .navbar-nav > li > a {
    font-size: 20px;
    padding-top: 15px;
    padding-bottom: 15px;
    line-height: 50px;
  }
}
.rrm-container {
  height:100%;
  display: table;
  width: 100%;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding-left: 0px;
  padding-right: 0px;
  .rrm-wrapper {
    height: 100%;
    display: table-row;
    .left-menu {
      float: none;
      display: table-cell;
      .box-shadow(0 1px 3px rgba(0,0,0,.25));
      ul {
        li {
          border: none;
          background-color: transparent;
        }
      }
    }
    .content {
      float: none;
      display: table-cell;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是FF计算的盒子模型: 在此输入图像描述

在此输入图像描述

cbo*_*ton 3

为了回答你的第一个问题,即为什么将组件模板作为 的兄弟模板<router-outlet>而不是放在它的内部,有几个 github 线程可以提供一些线索。

https://github.com/angular/angular/issues/8529#issuecomment-217718704 https://github.com/angular/angular/issues/4679

最相关的:

此行为的最初原因是为了在视图之间启用元素动画,在此期间源组件和目标组件都需要处于活动状态