2017-03-14 83 views
4

概述:离子2进修切换页面加载离子进修

我做一个网络请求,以填补名单时,我的页面加载在离子2应用程序。在这一刻,我扳动包括离子微调时,最初loads.This页面目前复习:

<ion-refresher (ionRefresh)="doRefresh($event)"> 

    <ion-refresher-content 
    pullingText="Pull to refresh..." 
    refreshingSpinner="circles"> 
    </ion-refresher-content> 

</ion-refresher> 

<ion-spinner *ngIf="loading" color="light" name="circles"></ion-spinner> 

我所期望的行为是除去离子的微调器组件,只是使离子复习时页面最初加载。我见过的这个与离子V1几个例子,但我似乎无法过来翻译成角2

问:

有触发离子复习和微调的方式从我的控制器(* .ts),所以我可以从我的模板中删除额外的离子微调组件?

+0

我正在尝试做同样的事情。你有没有找到解决方案? –

+0

@AndreasGassmann否我不是:/ – Everett

回答

2

我实际上发现了一个黑客:

import { Content, Refresher } from 'ionic-angular'; 

export class MyPage { 
    @ViewChild(Content) content: Content; 
    @ViewChild(Refresher) refresher: Refresher; 
... 
    ionViewDidEnter() { 
    this.refresher._top = this.content.contentTop + 'px'; 
    this.refresher.state = 'ready'; 
    this.refresher._onEnd(); 
    } 

这将显示并触发复习。它隐含地调用已注册的刷新功能。

+0

好主意。我会在一分钟内尝试一下,并让你知道。 – Everett

+0

这似乎很接近。我发现,从3.2版开始,这种方法可行,但不会显示微调(尽管显示的是空间)。 'refresher._beginRefresh()'似乎具有相同的效果。 – Unixmonkey

+0

我发现了一个适用于我的方法(https://github.com/ionic-team/ionic/issues/11393#issuecomment-316961038),它非常接近你的:'this.refresher._top = “50像素”; this.refresher.state ='刷新'; this.refresher._beginRefresh();' – Unixmonkey

0

对我来说,你不需要离子微调

的DOC说:

离子的微调器组件提供了多种动画SVG纺纱。 Spinners使您能够向用户反馈,该应用程序正在积极处理/思考/等待/冷却,或者您希望它指示的任何内容。 默认情况下,离子的复习功能使用此微调分量,而它的复习是在清凉状态

你必须在doc为例做它

https://ionicframework.com/docs/v2/api/components/refresher/Refresher/

编辑:因此,请使用à方法获取数据并在ionViewWillEnter中调用它。请参阅此帖子的评论How to dismiss Loader after data is ready

+0

我的问题中的关键词是“初始”。在所有情况下,刷新程序都按预期工作,我只是想在页面加载时显示内置的离子微调器,并发出我的初始http请求。 – Everett

+0

因此,使用à方法获取数据,并在ionViewWillEnter中调用它。请参见本文评论http://stackoverflow.com/questions/38095474/how-to-dismiss-loader-after-data-is-ready – Incognito

+0

仍然缺少重点我的问题。你刚才所说的正是我所做的。但我想发出刷新事件并让刷新组件在页面加载时显示微调器。 – Everett