Я перемещаюсь с AngularJS на Angular и начал использовать Ionic 3 (последняя) для создания моего приложения.
Но у меня есть небольшая проблема: я хочу использовать один заголовок на некоторых страницах с функцией выхода и т.д. Я не хочу реализовывать его на каждой странице компонента, и я хочу избежать дублирования кода.
Я пробовал самостоятельно. Прежде всего создаю отдельный компонент заголовка
header.html
<ion-header>
<ion-navbar color="primary-light">
<ion-title>
Super App
</ion-title>
<ion-buttons end>
<button ion-button class="button-out" icon-only (click)="signOut()">
<ion-icon class="fa fa-sign-out"></ion-icon>
</button>
</ion-buttons>
</ion-navbar>
</ion-header>
header.ts
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
@Component({
selector: 'app-header',
templateUrl: './header.html'
})
export class HeaderComponent {
constructor(public navCtrl: NavController) {}
signOut() {
//some auth strategy and then
this.navCtrl.popToRoot();
}
}
Я перехожу на страницы, где я хочу добавить свой заголовок, я сделал import {HeaderComponent} from './../header/header'
в page.module.ts
, добавил HeaderComponent
в declarations
и entryComponents
и добавил на страницу .html <app-header></app-header>
, и это было появился.
Но когда я сделал то же самое на другой странице - у меня была ошибка:
Не удалось выполнить навигацию: Тип HeaderComponent является частью деклараций из двух модулей: PageOneModule и PageTwoModule! Пожалуйста, подумайте о перемещении HeaderComponent в более высокий модуль, который импортирует DeliveryPageModule и PageTwoModule. Вы также можете создать новый NgModule, который экспортирует и включает HeaderComponent, затем импортирует этот NgModule в PageOneModule и PageTwoModule.
Затем я пошел в app.module.ts и импортировал заголовок там (до того, как я удалил заголовок из модулей page1 и page2), и я получил следующую ошибку:
Ошибки анализа шаблона: "app-header" не является известным элементом: 1. Если "app-header" является компонентом Angular, а затем убедитесь, что он является частью этого модуля. 2. Если "app-header" является веб-компонентом, добавьте "CUSTOM_ELEMENTS_SCHEMA" в "@NgModule.schemas" этого компонента, чтобы подавить это сообщение. ("[ERROR → ]
Я искал примеры, но они не работают в Ionic 3. Кто-нибудь может помочь с этим или дать рабочее руководство, как это сделать?