3 つの異なるデータ セットに対して 1 つのビューを備えた Ionic 2 アプリがあります。データはコンストラクターにロードされ、ページパラメーターの変数に基づいて、表示するデータセットが決定されます。
Observable によるデータ呼び出しが成功するたびに、イベント ハンドラーは、データが読み込まれたときに成功をログに記録します。しかし、これは初めてビューをクリック/ロードしたときにのみ機能します。2 回目以降にクリックしても、データは再ロードされません (ログなし)。また、何かをコンソール ログに記録すると、2 回目以降のクリックでは表示されません。
だから、毎回データをロードするために何を変更すればいいのか、コンストラクターがこのようにどのように機能するのか疑問に思います。
これは私のコードがどのように見えるかです。JSON は、namesListProvider から呼び出されます。
@Component({
templateUrl: '...',
})
export class ListOfNames {
...
private dataListAll: Array<any> = [];
private dataListFavourites: Array<any> = [];
private dataListDisliked: Array<any> = [];
constructor(private nav: NavController, ...) {
...
this.loadJsons();
console.log('whatever');
}
loadJsons(){
this.namesListProvider.getJsons()
.subscribe(
(data:any) => {
this.dataListFavourites = data[0],
this.dataListDisliked = data[1],
this.dataListAll = data[2]
if (this.actualList === 'mainList') {
this.listOfNames = this.dataListAll;
this.swipeLeftList = this.dataListDisliked;
this.swipeRightList = this.dataListFavourites;
}
else if (...) {
...
}
this.listSearchResults = this.listOfNames;
}, err => console.log('hey, error when loading names list - ' + err),
() => console.info('loading Jsons complete')
)
}