Angular 7 Universal: внутренние компоненты не отображаются - PullRequest
0 голосов
/ 14 ноября 2018

Я установил Angular 7 Universal с динамическим рендерингом на стороне сервера.Все работает нормально, за исключением того факта, что динамические компоненты внутри основного компонента, отображаемые на стороне сервера, сами не отображаются.

Ниже приведен пример HTML-кода секции заголовка:

<sb-app _nghost-sc0="" ng-version="7.0.3">
  <sb-header _ngcontent-sc0="" _nghost-sc1="">
    <div _ngcontent-sc1="" class="nav-topbar"></div>
    <nav _ngcontent-sc1="" class="navbar navbar-expand-lg navbar-light p-0" id="main-navbar">
      <div _ngcontent-sc1="" class="container d-flex align-items-center px-3">
      <a _ngcontent-sc1="" class="navbar-brand" href="/">
      <img _ngcontent-sc1="" alt="logo" class="navbar-logo" src="/assets/images/common/logo.svg" title="Logo">
      </a>
      <a _ngcontent-sc1="" class="cd-nav-trigger"><span _ngcontent-sc1=""></span></a><!----><!---->
        <ul _ngcontent-sc1="" class="nav nav-pills d-none d-md-flex ng-star-inserted">
          <li _ngcontent-sc1="" class="nav-item"><a _ngcontent-sc1="" class="nav-link" id="login">Login</a></li>
          <li _ngcontent-sc1="" class="nav-item"><a _ngcontent-sc1="" class="nav-link" id="register">Register</a></li>
        </ul>
      </div>
      
      <!-- THIS BELOW COMPONENT IS NOT RENDERED -->
      <sb-menu _ngcontent-sc1="" class="d-block d-md-none ng-tns-c9-0" _nghost-sc9=""><!----></sb-menu>
    </nav>
  </sb-header>
  ...
</sb-app>

Как мне решить эту проблему, чтобы также отображались такие теги, как <sb-menu>?

1 Ответ

0 голосов
/ 22 ноября 2018

Вы должны знать, что Angular Universal полагается на тот факт, что ваш код использует только механизмы Angular и никогда не использует API браузера (окно, документ, навигатор и т. Д.), Поскольку эти объекты не существуют в Node.js.

Кроме того, если один из ваших компонентов использует внешнюю библиотеку, загруженную с помощью тега script, это также не будет работать, поскольку Node.js не будет загружать клиентские сценарии при выполнении рендеринга на стороне сервера.

Если один из ваших компонентов не рендерится, возможно, это из-за того, что ваш код не соответствует приведенным выше правилам.

...