У меня странное поведение с Angular 2. На самом деле мое приложение довольно простое. У него есть компонент главной страницы под названием kys-app
. В этом случае я указываю шаблон HTML как kys-app.html
. HTML тоже очень прост. Он состоит из четырех частей: заголовка, бокового меню, нижнего колонтитула и основного содержимого. Верхний колонтитул, нижний колонтитул и боковые меню имеют свои собственные HTML-коды шаблонов, которые определены в их собственных файлах компонентов. (header.ts
, footer.ts
и sidemenu.ts
). Ожидается, что основной контент будет отображаться в роутере-розетке. Вот kys-app.ts
:
import { Component, OnInit, Input, Injectable, Inject, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { Router, RouterModule } from '@angular/router';
import { FormsModule } from '@angular/forms';
import { HttpModule, XHRBackend } from '@angular/http';
//import { HeaderComp } from '../../components/app/header';
import { FooterComp } from '../../components/app/footer';
//import { SideMenuComp } from '../../components/app/side-menu';
//import { AuthGuard } from '/app/services/auth-guard';
@Component({
imports: [ HttpModule, RouterModule ],
selector: 'kys-app',
templateUrl: '/app/components/app/kys-app.html',
directives: [ FooterComp ],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
// providers: [ {provide: Router, useClass: RouterModule} ]
})
export class KYSAppComp {
constructor() {
console.log(' %% KYSAppComp %%');
}
}
И мой kys-app.html
контент выглядит следующим образом:
<!-- Main Content -->
<section class="content-wrap">
<div class="card-panel">
<router-outlet></router-outlet>
<!-- Footer -->
<kys-footer></kys-footer>
</div>
</section>
<!-- /Main Content -->
Примечание: чтобы упростить, я временно удалил компоненты заголовка и бокового меню. Итак, когда я захожу на главную страницу, я ожидаю увидеть основное содержимое в разделе router-outlet, а под ним - содержимое нижнего колонтитула.
Я вижу следующее: хотя основное содержимое (содержимое компонента, к которому я обращаюсь через путь маршрутизатора (например, /#/login
)) отображается правильно, но другие разделы kys-app
не отображаются (например, содержимое нижнего колонтитула). Другими словами, Angular 2 не отображает пользовательские теги, определенные в kys-app
(например: <kys-footer>
).
Может ли кто-нибудь взглянуть на приведенные выше коды и сказать мне, что я делаю не так?