当用户在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
我将它放在错误的位置?
答案 0 :(得分:36)
您可以订阅内容活动。
内容有3 output events:
收听活动:
@ViewChild(Content)
content: Content;
// ...
ngAfterViewInit() {
this.content.ionScrollEnd.subscribe((data)=>{
//... do things
});
}
或者从DOM中做到:
<ion-content (ionScroll)="onScroll($event)">
对于Ionic 4
<ion-content [scrollEvents]="true" (ionScroll)="onScroll($event)">
答案 1 :(得分:1)
您可以使用ngOnInit方法注册滚动事件:
ngOnInit() {
if (this.content) {
this.content.ionScroll.subscribe((data)=>
this.keyboard.close();
});
}
}
答案 2 :(得分:0)
在自定义指令内部尝试使用以下内容:
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);
});
}