我试图根据另一个表的外键ID对从API接收的数据进行排序。在这种情况下,请根据其相应的症状类型来排序一堆症状。
在Symptom.ts文件中:
export class SymptomsPage {
symptoms: any;
symptomtypes: any;
constructor(public navCtrl: NavController, public dataProvider: DataProvider) {
this.getSymptoms();
this.getSymptomTypes();
}
getSymptoms() {
this.dataProvider.getSymptom()
.then(data => {
this.symptoms = data;
console.log(this.symptoms);
});
}
getSymptomTypes() {
this.dataProvider.getSymptomType()
.then(data => {
this.symptomtypes = data;
console.log(this.symptomtypes);
});
}
}
在symbes.html文件中:
<h1>Symptoms</h1>
<h2> {{symptomtypes[0].Description}}</h2>
<ion-item *ngFor="let symptom of symptoms">
<ul>
<li *ngIf="symptom.SymptomTypeID === 1">
<p> {{symptom.Description}}</p>
</li>
</ul>
</ion-item>
这基本上是硬编码的,效率很低。
对于以后要添加新症状和新类型的情况,我希望结果可以进行以下处理:
症状类型1
类型1的症状
类型1的症状
症状类型2
类型2的症状
类型2的症状
症状类型3
类型3的症状
类型3的症状
任何帮助将不胜感激。
答案 0 :(得分:1)
我认为最好在ts文件(如果只有一个字段)中添加foreach
this.symptomstype.forEach((symtypeItem) => { // foreach statement
this.symptoms.forEach((symItem) => {
if(symItem.type == symtypeItem.type) {
//add values to array
}
})
})
在视图(html文件)中使用此数组。