Логическое значение для загрузки разных данных
Я работаю над проектом "Ионик 4". Мой проект получает данные json
из URL расписания рейсов. я сделал button boolean
когда пользователь нажимает на кнопку, на разных страницах отображаются разные URL-адреса данных. Когда я нажимаю, я получаю те же данные, они не меняются
Loadearlierflights : boolean = true;
async getData() {
const loading = await this.loadingController.create({
message: 'Loading'
});
await loading.present();
/// flights details for today ///
if (this.Loadearlierflights===true) {
this.http.get('xxxxxxx/airport.json?code=bsr', {}, {})
.then(data => {
this.test = JSON.parse(data.data);
const parsed = JSON.parse(data.data);
this.items = parsed.pluginData.schedule.arrivals.data;
loading.dismiss()
console.log(this.items)
}), err=>{
this.test =err
loading.dismiss()
}
/// flights details for yesterday ///
}else if (this.Loadearlierflights===false) {
this.http.get('xxxxxxxx/airport.json?code=bsr&page=-1', {}, {})
.then(data => {
this.test = JSON.parse(data.data);
const parsed = JSON.parse(data.data);
this.items = parsed.pluginData.schedule.arrivals.data;
loading.dismiss()
console.log(this.items)
}), err=>{
this.test =err
loading.dismiss()
}
}
HTML
<ion-button shape="round" (click)="getData()">load earlier flights</ion-button>
<ion-item *ngFor="let item of items" >
<table>
<tbody>
<tr >
<td >
<div *ngIf="item?.flight.airline.code.icao">
<img src="/{{item?.flight.airline.code.icao}}_logo0.png" (error)="handleImgError($event, item)" class="img-logo">
</div>
<div *ngIf="!item?.flight.airline.code.icao">
item?.flight.airline.name
</div>
</td>
<td text-left>{{item?.flight.identification.number.default}}</td>
<td text-center>{{item?.flight.airport.origin.position.region.city}}</td>
<td text-right>{{item?.flight.time.scheduled.arrival * 1000 | date:"h:mma"}}</td>
</tr>
<tr >
<td > </td>
<td ></td>
<td text-center>{{item?.flight.aircraft.model.code}}</td>
<td text-right [ngClass]='item?.flight.status.generic.status.text |Status'>{{item?.flight.status.generic.status.text|Status}}</td>
</tr>
</tbody>
</table>
</ion-item>
какие-нибудь идеи, пожалуйста?
3 ответа
В if-else есть ошибка
используйте If как показано ниже
if (this.Loadearlierflights)
or
if (this.Loadearlierflights === true)
Используйте else-if, как показано ниже
else if (this.Loadearlierflights)
or
else if (this.Loadearlierflights === false)
Возможно, сделайте клик по шаблону, чтобы указать новый метод:
async getEarlierFlightData() {
this.Loadearlierflights = false;
await this.getData():
this.Loadearlierflights = true;
};
Loadearlierflights : boolean = true; // should me global
async getData() {
const loading = await this.loadingController.create({
message: 'Loading'
});
await loading.present();
/// flights details for today ///
if (this.Loadearlierflights===true) {
this.http.get('xxxxxxx/airport.json?code=bsr', {}, {})
.then(data => {
this.test = JSON.parse(data.data);
const parsed = JSON.parse(data.data);
this.items = parsed.pluginData.schedule.arrivals.data;
loading.dismiss()
// Added this
this.Loadearlierflights = false;
console.log(this.items)
}), err=>{
this.test =err
loading.dismiss()
}
/// flights details for yesterday ///
}else if (this.Loadearlierflights===false) {
this.http.get('xxxxxxxx/airport.json?code=bsr&page=-1', {}, {})
.then(data => {
this.test = JSON.parse(data.data);
const parsed = JSON.parse(data.data);
this.items = parsed.pluginData.schedule.arrivals.data;
loading.dismiss()
console.log(this.items)
}), err=>{
this.test =err
loading.dismiss()
}
}
Дайте мне знать, если это работает.