вид силы для перезагрузки в ionic2 framework

после Очистить историю и перезагрузить страницу при входе / выходе с помощью Ionic Framework

Я хочу знать тот же вопрос, но для ionic2 с помощью typescript.

при входе и выходе из системы мне нужно перезагрузить app.ts, потому что есть классы, которые запускают библиотеки в construct.

это будет в основном перенаправление на дом и перезагрузка.

6 ответов


ионные 1


Я не использовал Ionic 2, но в настоящее время я использую Ionic 1.2, и если они все еще используют ui-router, чем вы можете использовать reload: true в ui-sref

или вы можете добавить ниже код к контроллеру выхода

$state.transitionTo($state.current, $stateParams, {
    reload: true,
    inherit: false,
    notify: true
});

Угловое 2


использовать

$window.местоположение.reload ();

или

расположение.reload ();


нашли этот ответ!--5-->здесь (обратите внимание, особенно строку this.navCtrl.setRoot(this.navCtrl.getActive().component); это, безусловно, самое простое решение, с которым я столкнулся, чтобы перезагрузить настоящую страницу для Ionic 2 & 3 и более поздних версий Angular (мой-4), поэтому кредит должен соответственно:

ПЕРЕЗАГРУЗИТЬ ТЕКУЩУЮ СТРАНИЦУ

import { Component } from '@angular/core';
import { NavController, ModalController} from 'ionic-angular';

@Component({
  selector: 'page-example',
  templateUrl: 'example.html'
})
export class ExamplePage {

  public someVar: any;

  constructor(public navCtrl: NavController, private modalCtrl: ModalController) {

  }

  refreshPage() {
    this.navCtrl.setRoot(this.navCtrl.getActive().component);
  }

}

если вы хотите ПЕРЕЗАГРУЗИТЕ ДРУГУЮ СТРАНИЦУ пожалуйста, используйте следующее (примечание this.navCtrl.setRoot(HomePage);:

import { Component } from '@angular/core';
import { NavController, ModalController} from 'ionic-angular';
import { HomePage } from'../home/home';

@Component({
  selector: 'page-example',
  templateUrl: 'example.html'
})
export class ExamplePage {

  public someVar: any;

  constructor(public navCtrl: NavController, private modalCtrl: ModalController) {

  }

  directToNewPage() {
    this.navCtrl.setRoot(HomePage);
  }

}

вы должны использовать тег CanReuse интерфейс и переопределить routerCanReuse вернуться false. Затем попробуйте позвонить router.renavigate().

ваш компонент должен выглядеть следующим образом:

class MyComponent implements CanReuse {
  // your code here...
  routerCanReuse(next: ComponentInstruction, prev: ComponentInstruction) { 
    return false;
  }
}

и затем, когда вы выполняете вход / выход, вызовите:

// navigate to home
router.renavigate()

это хак, но он работает.

оберните логику, которая следует за настройкой шаблона в setTimeout и это дает браузеру момент для обновления:

/* my code which adjusts the ng 2 html template in some way */
setTimeout(function() {
    /* processing which follows the template change */
}, 100);

для ionic 2 это работает для меня, когда вы заставляете перезагрузить страницу, вызвав fireWillEnter на контроллере вида

viewController.fireWillEnter();

вот что сработало для меня обновить только текущую страницу-

Я пытаюсь вызвать функцию refreshMe, когда я вызываю onDelete со своей страницы просмотра,
Посмотрите, как моя страница.файл TS выглядит-

 export class MyPage {
    lines of code goes here like 
    public arr1: any;
    public arr2: any;

    public constructor(private nav: NavController, navParams: NavParams) {
      this.nav = nav;

      this.arr1 = [];
      this.arr2 = [];
      // console.log("hey array");
    }  

    onDelete() {
       perform this set of tasks...
       ...
       ...
      refreshMe()
    }


    refreshMe() {
      this.nav.setRoot(MyPage);
    }
}

Это просто обновление только текущей страницы.
Мы также можем вызвать эту функцию из виду, если нам нужно как--

<ion-col width-60 offset-30 (click)="refreshMe()">
   ....
   ....
</ion-col>