Ионный переподготовка автоматически запускается при загрузке страницы? - PullRequest
0 голосов
/ 24 апреля 2019

Ионное обновление обновляет страницу, не вызывая doRefresh вручную.Я бы хотел, чтобы обновление выполнялось только после завершения действия «pull down».

Похоже, что doRefresh автоматически выполняется для функции «ionviewdidload».

<ion-refresher (ionRefresh)="doRefresh($event);">
  <ion-refresher-content 
       pullingText="Pull to refresh" pullingIcon="arrow-dropdown" 
       refreshingSpinner="circles"
       refreshingText="..fetching">
   </ion-refresher-content> 
</ion-refresher>

home.ts

    doRefresh(refresher) {

    console.log('the current tab that is set = ' + this.tabSelId);



    console.log('testing');
    this.user = JSON.parse(window.localStorage.getItem('user'));
    let self_ = this;
    let devicePos = null;


    let devicelat = null;
    let devicelong = null;

    Geolocation.getCurrentPosition().then((position) => {


        // self_.loadingData(devicePos);
        devicelat = position.coords.latitude;
        devicelong = position.coords.longitude;

        self_.get_all_posts(devicelat, devicelong, self_.tabSelId);

        refresher.complete();



    }, (err) => {
        console.log('failed to get lat and long :' + err);

            self_.get_all_posts(devicelat, devicelong, self_.tabSelId);



        // self_.filter_posts_by_type(self_.tabSelId);

        // loading.dismiss();
        // refresher.complete();


    });



}

в моей функции ionviewdidload (home.ts):

    ionViewDidLoad(){

    this.user = JSON.parse(window.localStorage.getItem('user'));
    let self_ = this;
    let devicePos = null;

        console.log('the current tab that is set = '+this.tabSelId);

    let devicelat = null;
    let devicelong = null;

    Geolocation.getCurrentPosition().then((position) => {

        devicelat = position.coords.latitude;
        devicelong = position.coords.longitude;

        console.log('%c executing when position is got successfully ', 'background: #222; color: #bada55');


        self_.get_all_posts(devicelat, devicelong, self_.tabSelId);


        console.log('executing when position is got successfully');


    }, (err) => {
        console.log('failed to get lat and long :' + err);

            devicelat = 28.318237;
            devicelong = 111.168137;

            self_.get_all_posts(devicelat, devicelong, self_.tabSelId);



    });

это поведение по умолчанию при использовании

«ион-освежитель»

Я бы хотел, чтобы переподготовка работала только тогда, когда было выполнено действие «опускание».Не знаю, почему функция doRefresh () выполняется при загрузке приложения (только в первый раз)

1 Ответ

2 голосов
/ 24 апреля 2019

В вашем HTML используйте как ..

<ion-refresher slot="fixed" (ionRefresh)="doRefresh($event)">
    <ion-refresher-content pullingIcon="arrow-dropdown" pullingText="Pull to refresh" refreshingSpinner="circles"
      refreshingText="Refreshing...">
    </ion-refresher-content>
  </ion-refresher>

In .ts использовать как ...

 doRefresh(event) {
    this.userPost();
    setTimeout(() => {
      event.target.complete();
    }, 2000);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...