我正在使用框架离子 2,我需要将参数从我的选项卡发送到其他页面,该页面不在我的选项卡上...
我知道方法"this.navCtrl.push(view,{parameters}("但是我只需要发送参数,不想打开其他页面,只有参数。请帮助我。
在我的代码中,我需要发送参数"rut"。
选项卡.html:
<ion-menu [content]="content" >
<ion-header>
<ion-toolbar>
<img class="avatar" src="assets/img/i2.png">
<div class="name-user">{{nombre}} {{apellido}}</div>
<div class="rut-user">{{rut}}</div>
</ion-toolbar>
</ion-header>
<ion-content >
<ion-list>
<div class="items-menu">
<div class="item-menu" (click)="scan()">
<ion-icon name="md-qr-scanner"></ion-icon>
<div class="title">Escanear Producto</div>
</div>
<div class="item-menu" (click)="modificarPerfil()">
<ion-icon name="md-person"></ion-icon>
<div class="title">Perfil</div>
</div>
<div class="item-menu">
<ion-icon name="md-settings"></ion-icon>
<div class="title">Opciones</div>
</div>
<div class="item-menu">
<ion-icon name="md-information-circle"></ion-icon>
<div class="title">Acerca De</div>
</div>
<div class="item-menu" (click)="cerrarsesion()" >
<ion-icon name="md-log-out"></ion-icon>
<div class="title">Cerrar Sesion</div>
</div>
</div>
</ion-list>
</ion-content>
</ion-menu>
<ion-nav [root]="rootPage" #content swipeBackEnabled="true" ></ion-nav>
<ion-tabs color="primary">
<ion-tab [root]="tab1Root" tabTitle="Home" tabIcon="home"></ion-tab>
<ion-tab [root]="tab2Root" tabTitle="Carro" tabBadge="{{num}}" tabIcon="cart" tabBadgeStyle="danger" ></ion-tab>
<ion-tab tabTitle="Perfil" tabIcon="md-person" (ionSelect)="modificarPerfil()"></ion-tab>
</ion-tabs>
我假设你有 3 页:tabsAll, tab1Root, tab2Root
其中tabsAll
是整体的,显示了其代码。
您需要将参数从选项卡发送到其他页面。我假设另一个页面是其他选项卡?您可以使用rootParams
将参数从选项卡传递到其他选项卡。
选项卡所有网页
<ion-tabs color="primary">
<ion-tab [root]="tab1Root" [rootParams]="{rutValue: rut}"></ion-tab>
<ion-tab [root]="tab2Root" [rootParams]="{rutValue: rut}" ></ion-tab>
</ion-tabs>
tab1根 js
constructor(..., private navParams : NavParams){
var rut = navParams.get("rutValue");
}
有关rootParams
的更多文档,请访问:https://ionicframework.com/docs/api/components/tabs/Tab/
让我知道这是否是您想要的。
如果您不希望转到该页面,则通过创建提供程序将数据发送到共享服务,并在所需的任何位置获取数据
使用 cli 命令创建提供程序,
ionic g provider providerName
像这样将您的价值存储在您的提供商中,
import { Injectable } from '@angular/core';
@Injectable()
export class Provider {
public addedItems:any;
constructor() {
}
addedItems(data) {
return this.addedItems=data;
}
}
并将此提供程序导入 component.ts 中以检索添加的值。这样,您可以在不打开任何页面的情况下将数据发送到其他页面。希望有帮助