вид силы для перезагрузки в 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>