所以,我的应用程序得到一个响应,并且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;
答案 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[]
}