ionic3?主動觸發(fā)下拉刷新指令
用法
? ?頁面加載的時候觸發(fā)
? ?每次進入頁面視圖的時候觸發(fā)
指令代碼
import { Directive, OnInit, Injector, Input } from '@angular/core';
import { Refresher, Content, ViewController } from 'ionic-angular';
@Directive({
? selector: '[beginRefresh]'
})
export class BeginRefreshDirective implements OnInit {
? @Input('beginRefresh')? private _beginRefresh = false;
? constructor(
? ? private injector: Injector,
? ? private viewCtrl: ViewController
? ) {
? }
? ngOnInit() {
? ? if (!this._beginRefresh) {
? ? ? this.beginRefresh();
? ? } else {
? ? ? this.viewCtrl.didEnter.subscribe(() => {
? ? ? ? this.beginRefresh();
? ? ? });
? ? }
? }
? private async beginRefresh() {
? ? const top = await this.getContentTop();
? ? const refresher = this.injector.get(Refresher);
? ? refresher._top = `${top}px`;
? ? refresher.state = 'refreshing';
? ? refresher._beginRefresh();
? }
? private getContentTop(): Promise<number> {
? ? const content = this.injector.get(Content);
? ? return new Promise((resolve, reject) => {
? ? ? const timer = setInterval(() => {
? ? ? ? if (content.contentTop) {
? ? ? ? ? resolve(content.contentTop);
? ? ? ? ? clearInterval(timer);
? ? ? ? }
? ? ? }, 0);
? ? });
? }
}