Ionic 在页面中使用页面并设置属性
Ionic using Page in Page and Setting Attributes
我有一个关于使用另一个页面的问题。首先,我创建了名为 Header 的第一个页面。我的 Header 页面获得了 Selector:page-Header。在另一个页面中使用带有此选择器的页面可以正常工作。但是现在我在 header.ts 中创建了一个名为 "Title" 的属性。标题是我也在 header.html 中使用的东西,只是为了显示文本。
现在我想在第二页中再次使用 Header 并设置 "Title" 属性,但我不知道如何设置。仅在 HTML 中设置它不起作用。
第二个HTML:
<page-header Title="CrazyNewTitle"></page-header>
header.html:
<ion-header>
<ion-navbar>
<button ion-button menuToggle>
<ion-icon color="dark" name="menu"></ion-icon>
</button>
<ion-title>{{title}}</ion-title>
<ion-buttons end>
<button ion-button end>
<ion-icon color="dark" name="contact"></ion-icon>
</button>
</ion-buttons>
</ion-navbar>
</ion-header>
header.ts:
import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
/**
* Generated class for the HeaderPage page.
*
* See https://ionicframework.com/docs/components/#navigation for more info on
* Ionic pages and navigation.
*/
@Component({
selector: 'page-header',
templateUrl: 'header.html',
})
export class HeaderPage {
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
public Title : string;
ionViewDidLoad() {
console.log('ionViewDidLoad HeaderPage');
}
}
感谢您的帮助:)
首先,您必须在 header 页面中创建 get 和 set 方法,您的 header 页面将如下所示:
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'app-custom-header',
templateUrl: './custom-header.component.html',
styleUrls: ['./custom-header.component.css']
})
export class CustomHeaderComponent implements OnInit {
title : string;
constructor() { }
@Input()
set header(header_data: any) {
this.title = header_data;
}
get header() {
return this.title;
}
ngOnInit() {
}
}
在此之后你必须从 parent 组件传递值来创建一个变量并分配你的 Header 文本,如:
public title = "My Title";
并使用此字符串变量名称传递您的值,这样您的 UI 代码将是:
<app-custom-header [header]="title"></app-custom-header>
使用此方法,您还可以传递 object、数组等。我为您的解决方案创建了 stackblitz。
我有一个关于使用另一个页面的问题。首先,我创建了名为 Header 的第一个页面。我的 Header 页面获得了 Selector:page-Header。在另一个页面中使用带有此选择器的页面可以正常工作。但是现在我在 header.ts 中创建了一个名为 "Title" 的属性。标题是我也在 header.html 中使用的东西,只是为了显示文本。 现在我想在第二页中再次使用 Header 并设置 "Title" 属性,但我不知道如何设置。仅在 HTML 中设置它不起作用。
第二个HTML:
<page-header Title="CrazyNewTitle"></page-header>
header.html:
<ion-header>
<ion-navbar>
<button ion-button menuToggle>
<ion-icon color="dark" name="menu"></ion-icon>
</button>
<ion-title>{{title}}</ion-title>
<ion-buttons end>
<button ion-button end>
<ion-icon color="dark" name="contact"></ion-icon>
</button>
</ion-buttons>
</ion-navbar>
</ion-header>
header.ts:
import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
/**
* Generated class for the HeaderPage page.
*
* See https://ionicframework.com/docs/components/#navigation for more info on
* Ionic pages and navigation.
*/
@Component({
selector: 'page-header',
templateUrl: 'header.html',
})
export class HeaderPage {
constructor(public navCtrl: NavController, public navParams: NavParams) {
}
public Title : string;
ionViewDidLoad() {
console.log('ionViewDidLoad HeaderPage');
}
}
感谢您的帮助:)
首先,您必须在 header 页面中创建 get 和 set 方法,您的 header 页面将如下所示:
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'app-custom-header',
templateUrl: './custom-header.component.html',
styleUrls: ['./custom-header.component.css']
})
export class CustomHeaderComponent implements OnInit {
title : string;
constructor() { }
@Input()
set header(header_data: any) {
this.title = header_data;
}
get header() {
return this.title;
}
ngOnInit() {
}
}
在此之后你必须从 parent 组件传递值来创建一个变量并分配你的 Header 文本,如:
public title = "My Title";
并使用此字符串变量名称传递您的值,这样您的 UI 代码将是:
<app-custom-header [header]="title"></app-custom-header>
使用此方法,您还可以传递 object、数组等。我为您的解决方案创建了 stackblitz。