离子3:检查NavParams.get

时间:2017-12-06 15:16:14

标签: angular typescript ionic-framework ionic3

所以,我的应用程序得到一个响应,并且navCtrl.push将它作为一个数组放入另一个页面 让我们说该页面的ts上的构造函数看起来像这样



constructor(public navCtrl: NavController, public navParams: NavParams) {
    this.id = navParams.get('infoList')[0].id;
    this.name = navParams.get('infoList')[0].full_name;
    this.email = navParams.get('infoList')[0].email;
    this.epmname = navParams.get('infoList')[0].managers[0].full_name;
    this.epmemail = navParams.get('infoList')[0].managers[0].email;
    this.epm2name = navParams.get('infoList')[0].managers[1].full_name;
    this.epm2email = navParams.get('infoList')[0].managers[1].email;
    this.epm3name = navParams.get('infoList')[0].managers[2].full_name;
    this.epm3email = navParams.get('infoList')[0].managers[2].email;
  }




现在,响应可能并不总是有一个管理器子数组,或者可能只有1个或2个子元素而不是3个,如何对此进行检查?感谢

更新:这是我的results.html页面的一部分:



<ion-item-divider color="light">
      Manager Info (Second EPM - if exists):
    </ion-item-divider>
    <ion-item color="none">
      Name: {{epm2name}}
    </ion-item>
    <ion-item color="none">
      Country Code: {{epm2countrycode}}
    </ion-item>
    <ion-item color="none">
      Phone number: {{epm2phone}}
    </ion-item>
    <ion-item color="none">
      Email: {{epm2email}}
    </ion-item>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

这真是一种可怕的方式。我强烈建议你在这里使用更强大的面向对象的模式。如果你这样做,那么你可以轻松检查null等等。

注意:我从我的一个项目中提取了以下示例。所以请根据您的应用进行调整。如果您有任何问题,请随时提出。

发送

MY-SEND-page.ts

goToEditBudget(data: Budget) {
    let dtoBudget = new DtoBudget();
    dtoBudget.budget = data;
    dtoBudget.action = 'edit'
    this.navCtrl.push('AddBudgetPage', { data: dtoBudget });
  }

<强>检索

附加预算page.ts

constructor(private navCtrl: NavController, private navParams: NavParams) {
    let data: DtoBudget = this.navParams.get('data');
    if (data != null) {
      this.data = data.budget;
      this.action = data.action;
    }
  }

DtoBudget.ts

import { Transaction } from './../Transaction';
import { Budget } from './../Budget';

export class DtoBudget {
    budget: Budget;
    action: string;
    transactions: Transaction[]
}