Подтвердить что ты не робот

Роутер-выход занимает дополнительное место на странице (Angular 2)

Вот интересный вопрос, который я до сих пор игнорировал. Похоже, что Angular2 отображает содержимое внутри тегов директивы. Но, для маршрутизатора-выхода, это похоже на брата.

Мой первый вопрос: почему? Просто из интереса.

Я бы не стал беспокоиться об этом, но теперь это действительно вызывает проблемы в моем приложении. У меня есть два вложенных выхода и по какой-то необъяснимой причине, что один из них занимает 15 пикселей на странице и не имеет значения, что я делаю, я не могу избавиться от него. (см. снимок экрана) введите описание изображения здесь

То, что я описал, действительно так, или я просто делаю что-то неправильно? Кроме того, я понятия не имею, как подойти к этому, обыскал по всему, ничего не нашел.

Спасибо за вашу помощь.

UPDATE здесь мой файл меньше:

@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;
    }
  }
}

И вот полевая модель, которую FF вычисляет: введите описание изображения здесь

введите описание изображения здесь

4b9b3361

Ответ 1

В ответ на ваш первый вопрос о том, почему место шаблона компонента является родным <router-outlet>, а не внутри него, есть несколько потоков github, которые проливают некоторый свет.

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

Самое актуальное:

Первоначальная причина такого поведения заключалась в том, чтобы включить анимацию элементов между представлениями, в течение которых оба компонента источника и получателя должны быть активными