如何通过外键ID排序从API接收的JSON数据

时间:2019-05-23 13:04:27

标签: ionic-framework ionic3

我试图根据另一个表的外键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的症状

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我认为最好在ts文件(如果只有一个字段)中添加foreach

 this.symptomstype.forEach((symtypeItem) => { // foreach statement 
        this.symptoms.forEach((symItem) => {
            if(symItem.type == symtypeItem.type)  {
               //add values to array
             }
          })

    })  

在视图(html文件)中使用此数组。