* ngЕсли не обновляется после заполнения объекта - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть простая страница списка, в которой я объявляю переменную pokemons, которая заполняется через API:

export class ListPage implements OnInit { 
public pokemons: any;

constructor(public navCtrl: NavController, public pokemonProvider: PokemonProviderService, public parametersProvider: ParameterProviderService) {
  }


  ngOnInit() {
      this.counter = 1;
      this.pokemonProvider.getPokemons(this.counter).subscribe(result => this.pokemons = result);
      this.counter++;
  }
}

, на мой взгляд, тогда у меня есть ngFor, который перебирает этих покемонов и показывает каждого из них..

<div *ngIf="pokemons">
<ion-content>
  <ion-list>
    <ion-item *ngFor="let pokemon of pokemons.results" (click)="showDetails(pokemon)">
      <!--<ion-icon [name]="item.icon" slot="start"></ion-icon>-->
      <!--<button ion-button ></button>-->
      <h3> {{pokemon.name}} </h3>

    </ion-item>
  </ion-list>
  <ion-infinite-scroll threshold="100px" (ionInfinite)="loadData($event)">
    <ion-infinite-scroll-content
            loadingSpinner="bubbles"
            loadingText="Loading more data...">
    </ion-infinite-scroll-content>
  </ion-infinite-scroll>
  <!--
    <div *ngIf="selectedItem" padding>
      You navigated here from <b>{{selectedItem.title }}</b>
    </div>
  -->
</ion-content>
</div>

однако ngIf никогда не обновляется и всегда показывает белую страницу.Даже если «покемоны» заполнены.

1 Ответ

0 голосов
/ 22 февраля 2019

Оборачивание ion-содержимого с помощью div приводит к тому, что view не рендерится.Попробуйте вместо этого использовать * ngIf для содержания ионов.

https://stackblitz.com/edit/ionic-vndmrx

...