【问题标题】:how to get entire object using navParams - Ionic 3 Angular 4如何使用 navParams 获取整个对象 - Ionic 3 Angular 4
【发布时间】:2018-04-10 14:04:24
【问题描述】:
目前我正在将数据对象从一个页面传递到另一个页面(在模态中)。
我有 8 个参数要传递给模态视图。
this.firstParam = navParams.get("firstPassed");
this.secondParam = navParams.get("secondPassed");
.
.
.
this.eightParam = navParams.get("eightPassed");
如何使用一次调用获取整个对象数据
this.data = navParams.getAll(); //something like this
我无法在文档中找到获取整个对象的方法。
【问题讨论】:
标签:
angular
typescript
ionic-framework
ionic3
【解决方案1】:
你不需要那样做。您可以像下面这样一次发送所有内容。
注意:声明一个数据传输对象,如DtoMy
Dto-my.ts
export class DtoMy {
firstPassed: string;
secondPassed: string;
//your other properties
}
发送
let dtoMy = new DtoMy();
dtoMy.firstPassed= 'firstPassed';
dtoMy.secondPassed= 'secondPassed';
//your other values
const myModal = this.modalCtrl.create('MyModalPage', { data: dtoMy });
myModal.onDidDismiss(data => { });
myModal.present();
接收:
my-modal-page.ts
data :DtoMy;
constructor(private navParams: NavParams, private modalCtrl: ModalController) {
this.data = this.navParams.get('data');
}
【解决方案2】:
为了能够在第二页中获取整个对象,您可以尝试以下操作:
发送:
constructor(public navCtrl: NavController, public navParams : NavParams){}
public userObject =
{
firstName : "peter",
lastName : "haddad"
}
clickMe()
{
this.navCtrl.push(SecondPage,this.userObject);
}
您导入 NavController 和 NavParams,然后使用方法 push() 将包含您要传递的对象并导航到第二页。
在第二页:
export class SecondPage
{
userObject;
userName;
constructor(public navCtrl: NavController, public navParams: NavParams){}
ngOnInit()
{
this.userObject = this.navParams.data;
this.userName = this.userObject.firstName;
console.log(this.userObject);
}
}
这里你可以使用NavParams的实例成员data来访问对象,为了能够访问lastName,你可以这样做this.lastName=this.userObject.lastName
【解决方案3】:
constructor(public navCtrl: NavController, public navParams: NavParams) {
console.log(this.navParams.data)
}