在组件之间传递带有路由 link 的数组
pass array with route link between components
我已经创建了一个组件,它是一个导航选项卡,我如何设法使 action_go 功能能够推送到正确的路线?我试过这样但没有用,因为我相信 navTab 组件无法读取 _pages
内的路线
NavTab.ts
import { Component, Input} from '@angular/core';
import { NavController } from 'ionic-angular';
import { UtilToastsProvider } from '../../../../providers/util/toasts';
@Component({
selector: 'dashboard-navTabs',
templateUrl: 'navTabs.html'
})
export class Dashboard_NavTabs {
constructor(
public navCtrl: NavController,
private utilToasts: UtilToastsProvider){}
private _pages: any;
private _active: string;
@Input()
set pages(pages){
this._pages = pages;
}
@Input()
set active(active){
this._active = active;
}
action__go(page) {
console.log("sjdijaisd", JSON.stringify(this._pages))
if (typeof this._pages[page] !== 'undefined') {
this.navCtrl.setRoot(this._pages[page])
} else {
this.utilToasts.create('tip', {
message: 'Funcionalidade indisponível no momento.',
hideOkButton: true,
timeout: 6000
})
}
}
}
NavTab.html
<div class="navTab-container">
<button [class.active]="_active === 'ativos'" (click)="action__go('ativos')">Ativos</button>
<button [class.active]="_active === 'efetivados'" (click)="action__go('efetivados')">Efetivados</button>
<button [class.active]="_active === 'cancelados'" (click)="action__go('cancelados')">Cancelados</button>
</div>
我正在使用 NavTab 的屏幕:ts
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { UtilToastsProvider } from './../../../../../providers/util/toasts';
import { Dashboard__Consultas_Agendamentos_Efetivados_02 } from '../02-efetivados/efetivados';
@Component({
selector: 'dashboard-consultas-agendamentos-inicio-01',
templateUrl: 'inicio.html'
})
export class Dashboard__Consultas_Agendamentos_Inicio_01 {
constructor(
public navCtrl: NavController,
private utilToasts: UtilToastsProvider){
}
public pages = {
'efetivados': Dashboard__Consultas_Agendamentos_Efetivados_02
}
}
我正在使用 NavTab 的屏幕:html
<ion-header>
<ion-navbar color="white">
<ion-title>Agendamentos</ion-title>
</ion-navbar>
</ion-header>
<ion-content no-bounce>
<div #page class="page">
<div class="page-content">
<dashboard-navTabs pages="{{pages}}" active="ativos"></dashboard-navTabs>
<h1>AGENDAMENTOS</h1>
</div>
<dashboard-tabs active="home"></dashboard-tabs>
</div>
</ion-content>
这应该将您的数组传递给组件:
<dashboard-navTabs [pages]="pages" active="ativos"></dashboard-navTabs>
来自 angular 文档 - 属性绑定
The brackets, [], cause Angular to evaluate the right-hand side of the
assignment as a dynamic expression. Without the brackets, Angular
treats the right-hand side as a string literal and sets the property
to that static value.
https://angular.io/guide/property-binding
我已经创建了一个组件,它是一个导航选项卡,我如何设法使 action_go 功能能够推送到正确的路线?我试过这样但没有用,因为我相信 navTab 组件无法读取 _pages
内的路线NavTab.ts
import { Component, Input} from '@angular/core';
import { NavController } from 'ionic-angular';
import { UtilToastsProvider } from '../../../../providers/util/toasts';
@Component({
selector: 'dashboard-navTabs',
templateUrl: 'navTabs.html'
})
export class Dashboard_NavTabs {
constructor(
public navCtrl: NavController,
private utilToasts: UtilToastsProvider){}
private _pages: any;
private _active: string;
@Input()
set pages(pages){
this._pages = pages;
}
@Input()
set active(active){
this._active = active;
}
action__go(page) {
console.log("sjdijaisd", JSON.stringify(this._pages))
if (typeof this._pages[page] !== 'undefined') {
this.navCtrl.setRoot(this._pages[page])
} else {
this.utilToasts.create('tip', {
message: 'Funcionalidade indisponível no momento.',
hideOkButton: true,
timeout: 6000
})
}
}
}
NavTab.html
<div class="navTab-container">
<button [class.active]="_active === 'ativos'" (click)="action__go('ativos')">Ativos</button>
<button [class.active]="_active === 'efetivados'" (click)="action__go('efetivados')">Efetivados</button>
<button [class.active]="_active === 'cancelados'" (click)="action__go('cancelados')">Cancelados</button>
</div>
我正在使用 NavTab 的屏幕:ts
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { UtilToastsProvider } from './../../../../../providers/util/toasts';
import { Dashboard__Consultas_Agendamentos_Efetivados_02 } from '../02-efetivados/efetivados';
@Component({
selector: 'dashboard-consultas-agendamentos-inicio-01',
templateUrl: 'inicio.html'
})
export class Dashboard__Consultas_Agendamentos_Inicio_01 {
constructor(
public navCtrl: NavController,
private utilToasts: UtilToastsProvider){
}
public pages = {
'efetivados': Dashboard__Consultas_Agendamentos_Efetivados_02
}
}
我正在使用 NavTab 的屏幕:html
<ion-header>
<ion-navbar color="white">
<ion-title>Agendamentos</ion-title>
</ion-navbar>
</ion-header>
<ion-content no-bounce>
<div #page class="page">
<div class="page-content">
<dashboard-navTabs pages="{{pages}}" active="ativos"></dashboard-navTabs>
<h1>AGENDAMENTOS</h1>
</div>
<dashboard-tabs active="home"></dashboard-tabs>
</div>
</ion-content>
这应该将您的数组传递给组件:
<dashboard-navTabs [pages]="pages" active="ativos"></dashboard-navTabs>
来自 angular 文档 - 属性绑定
The brackets, [], cause Angular to evaluate the right-hand side of the assignment as a dynamic expression. Without the brackets, Angular treats the right-hand side as a string literal and sets the property to that static value. https://angular.io/guide/property-binding