2
我有一個離子列表與ngFor循環。下面是HTML:離子2 - 列表不更新
<ion-list>
<ion-item *ngFor="let kiosk of kiosks" (click)="goToKioskProfilePage(kiosk)">
{{kiosk.name}}
</ion-item>
</ion-list>
這裏是構造函數:
kiosks: any;
constructor(public navCtrl: NavController, navParams: NavParams, public locationTracker: LocationTracker, public api: ApiService, public zone: NgZone) {
this.kiosks = [];
this.zone.run(() => {
this.locationTracker.getGeolocation().then(location => {
this.api.getClosestKiosks(location, constants.AMOUNT_OF_CLOSEST_KIOSKS).then(
data => {
console.log("ready");
this.kiosks = data['data'];
},
err => {
console.log(err);
}
);
});
});
}
控制檯日誌「準備」,但該列表不會更新。我已經嘗試過與NgZone,但它仍然無法正常工作。只有當我打開sidemenu列表更新,但不是之前。有人知道如何解決這個問題?
請問,如果你只是運行區內的分配(而不是整個地理定位調用)工作的呢?就像'this.zone.run(()=> {this.kiosks = data ['data'];}); ' – sebaferreras
你不應該使用區域。它需要更新而不使用區域,所以問題必須在代碼的其他部分。也許亭必須公開? –
@CarlosAdrián因爲一些異步方法正在被調用(因此,被外界angular2運行),你必須讓角度知道反正那東西已經改變和視圖必須被更新。如果'kiosk'屬性未公開,則在嘗試渲染視圖時應在控制檯中顯示錯誤。 – sebaferreras