我想在一个单独的文件中定义 ion-header 部分,以便将其用于多个屏幕。 但我想在每个屏幕中定义标题 。
使用离子1,为此,我在离子视图中定义 ion-nav-title ,如下所示:https://ionicframework.com/docs/api/directive/ionNavTitle/
离子含量中的离子标题似乎无法使用离子2:https://ionicframework.com/docs/v2/api/components/toolbar/Title/
我是对的?这样做有诀窍吗?
谢谢,
于连
答案 0 :(得分:2)
您可以创建Input
变量。只需创建一个标题页:
HTML
<!-- ngIf to prevent a 'flashing' title, remove and see for yourself if you don't understand -->
<ion-header *ngIf="customTitle">
<ion-navbar color="quintor">
<button menuToggle ion-button>
<ion-icon name="menu"></ion-icon>
</button>
<ion-title>{{customTitle}}</ion-title>
</ion-navbar>
</ion-header>
TS
@Component({
selector: 'header-page',
templateUrl: 'header-page.html',
inputs: ['title']
})
export class HeaderPage {
//initialize if you remove the ngIf in html
public customTitle: string; //= "";
set title(value: string) {
if(value) {
this.customTitle = value;
}
}
constructor() { }
}
然后将HeaderPage
添加到@ngModule
下的declarations
(和entryComponents
,具体取决于版本)
接下来,您可以在任何html文件中调用它(无需导入任何页面),如下所示:
<header-page [title]="someVariable"></header-page>
或者只是
<header-page title="This is my title"></header-page>
(不完全确定title
是否为重新保留的术语,如果是,只需将其更改为不是pageTitle
的内容。)
答案 1 :(得分:1)
我想按顺序在一个单独的文件中定义ion-header部分 将它用于多重屏幕。
就像你在this answer中看到的那样, @mhartington (来自Ionic团队)说:
无法创建全局离子导航栏,因为这样做了 目的。为每个组件定义导航栏的重点是这样的 我们可以正确设置标题,导航栏背景颜色的动画(如果 你改变它们并动画所需的其他属性。
关于创建自定义指令以避免重复ion-navbar html代码:
这仍然会产生角度2内容投影的错误 作品。当人们尝试这个时,我们有几个问题已经公开 最好的答案是不要这样做。
所以即使你想要做的事情完全有意义,但以后可能会引起一些问题,所以你应该避免这样做:(