私はIonic 3のプロジェクトで作業しています。異なるメニューがあります。メニューを選択すると、イベントを公開して、ページ上の配列の値を変更するだけです。すべて正常に動作していますが、ページのデータが変わると、スクロールバーは前の位置にとどまります。私はメニューから項目を選択するたびにページをスクロールして頂きたい。このためIonic 3 - ランタイムエラーNULLのプロパティ 'scrollToTop'を読み取ることができません
私は、イベントがメニュー項目を選択する上で公開されているthis-
を使用しています。コードはapp.component.ts
onSelectCourse(slug){
const loading = this.loadingCtrl.create({
content: 'Loading Articles'
});
loading.present();
if(slug == 'all'){
this.postsProvider.listPosts(1)
.subscribe(data => {
this.events.publish('posts:listed', data);
loading.dismiss();
this.menuCtrl.close();
});
}
else{
this.postsProvider.listPostsByCategory(slug, 1)
.subscribe(data => {
this.events.publish('posts:listed', data);
loading.dismiss();
this.menuCtrl.close();
});
}
}
ホームページでのイベントをサブスクライブ(home.ts)でwrittentされる -
export class HomePage {
posts: any = [];
pages: number;
page: number;
category: string;
@ViewChild(Content) content: Content;
constructor(
private events: Events,
private postsProvider: PostsProvider,
private changeRef:ChangeDetectorRef) {
this.events.subscribe('posts:listed', (data) => {
this.posts = data.posts;
this.pages = data.pages;
this.page = 1;
this.category = data.category;
this.changeRef && this.changeRef.detectChanges();
this.content.scrollToTop();
});
}
}
しかし、項目を選択する上で、私はこのエラー
を取得しています
「あなたはメニューからアイテムを選択しました」の購読されたイベントのリストデータが変更されていますか? –
はい、リストはページ内で更新されていますが、スクロールバーは同じ位置に残ります.. –
いつイベントが公開されますか? –