Как упорядочить данные JSON, полученные из API по идентификатору внешнего ключа - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь упорядочить данные, полученные из 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);
    });
    }
}

В файле симптомов.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 Ответ

1 голос
/ 24 мая 2019

Я думаю, что лучше добавить foreach в TS-файл (если только одно поле), например

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

    })  

Использовать этот массив в представлении (HTML-файл).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...