2017-04-03 10 views
2

ユーザーがIonic 2をスクロールすると私が混乱します。私は基本的に言いたいのは、ユーザーがページをスクロールして何かをするときです。OnScrollイベントIonic 2

いずれの例も優れています。

UPDATE:

私は、コンストラクタでこれを持っているので、ページのスクロールは、私は、キーボードを閉じたいとき、それはオープンとクローズする他の方法放置に起因します。私はこのエラーを取得するしかし

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

Iあなたのビューに ''タグがあるとしますか?そしておそらく、コンストラクターの代わりにイオンのビューのライフサイクルの1つでイベントを購読する必要があります。 – devqon

答えて

17

コンテンツイベントを購読することができます。

コンテンツは3 output eventsがあります:すべてのスクロールイベントに照射

  • ionScroll
  • ionScrollEndスクロールが終了すると発生します。
  • ionScrollStartスクロールが最初に開始されると発生します。

イベントを聴く:

@ViewChild(Content) 
content: Content; 
// ... 
ngAfterViewInit() { 
    this.content.ionScrollEnd.subscribe((data)=>{ 
    //... do things 
    }); 
} 

やDOMからそれを実行します。

<ion-content (ionScroll)="onScroll($event)"> 
+0

ありがとうございます!私はgettignのエラーで質問を更新しました – BA1995

+0

子コンポーネント 'Content'を取得しましたか? – Erevald

+0

はい、私は再び.tsファイルの主な側面を表示するために更新しました – BA1995

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); 
    }); 
} 
関連する問題