ユーザーがIonic 2をスクロールしたときに拾うと混乱します。基本的に、ユーザーがページを下にスクロールしたとき、何かをします。
どんな例でも素晴らしいでしょう。
更新:
私はコンストラクタにこれを持っているので、ページがスクロールするとき、キーボードは開いたままになり、他に閉じる方法がないため、キーボードを閉じます。
import { Component, ViewChild } from '@angular/core';
import { NavController, NavParams, Content } from 'ionic-angular';
import { Keyboard } from '@ionic-native/keyboard';
export class SearchPage {
@ViewChild(Content)
content:Content;
constructor(public keyboard: Keyboard, public formBuilder: FormBuilder, public navCtrl: NavController, public navParams: NavParams, public apiAuthentication: ApiAuthentication, private http: Http) {
this.content.ionScroll.subscribe((data)=>{
this.keyboard.close();
});
}
}
ただし、このエラーが表示されるCannot read property 'ionScroll' of undefined
間違った場所に置いていますか?
コンテンツイベントにサブスクライブできます。
コンテンツの つの出力イベント :
イベントを聞く:
@ViewChild(Content)
content: Content;
// ...
ngAfterViewInit() {
this.content.ionScrollEnd.subscribe((data)=>{
//... do things
});
}
または、DOMから実行します。
<ion-content (ionScroll)="onScroll($event)">
For Ionic 4
<ion-content [scrollEvents]="true" (ionScroll)="onScroll($event)">
NgOnInitメソッドを使用して、スクロールイベントを登録できます。
ngOnInit() {
if (this.content) {
this.content.ionScroll.subscribe((data)=>
this.keyboard.close();
});
}
}
カスタムディレクティブ内で次のようなものを試してください。
import { Renderer2 } from '@angular/core';
...
constructor(private renderer: Renderer2) {}
ngOnInit() {
this.renderer.listen(this.myElement, 'scroll', (event) => {
// Do something with 'event'
console.log(this.myElement.scrollTop);
});
}