Как получить данные со страницы входа на страницу My-Details в ionic 3

У меня есть страница входа, которая работает нормально. После того, как клиент войдет в учетную запись, он будет перенаправлен на «HomePage», теперь HomePage будет иметь все данные клиента. Ниже приведен код файла My loginPage.ts, который работает нормально:

    this.auth.login(this.loginCredentials).subscribe(data => {
if(data){
this.customerdata = data;
if(this.customerdata['status_code'] == '200'){
this.navCtrl.setRoot(HomePage,{customerdata: this.customerdata});
}else if(this.customerdata['status_code'] == '000'){
this.navCtrl.setRoot(LoginPage);
}
}
})

Проблема в том, что у меня есть еще одна страница «MyDetailsPage.ts». Я хочу, чтобы на этой странице были те же данные. Я перехожу на эту страницу через раздел SIDE-MENU. Поэтому я не могу использовать функцию PUSH и отправлять данные.

Поэтому, пожалуйста, помогите мне.

Спасибо,

0

Решение

Используя NavParams и События, вы можете сделать это

События — это система событий в стиле «публикация-подписка» для отправки и реагирования на события уровня приложения в вашем приложении.

NavParams — это объект, который существует на странице и может содержать данные для этого конкретного представления.

import { Events } from 'ionic-angular';

first page (publish an event when a user is created)
constructor(public events: Events) {}
createUser(user) {
console.log('User created!')
this.events.publish('user:created', user, Date.now());
}
second page (listen for the user created event after function is called)
constructor(public events: Events) {
events.subscribe('user:created', (user, time) => {
user and time are the same arguments passed in `events.publish(user, time)`
console.log('Welcome', user, 'at', time);
});
}

Ссылка https://ionicframework.com/docs/api/util/Events/

Или попробуйте с параметрами

 constructor(public navParams: NavParams){
// userParams is an object we have in our nav-parameters
this.customerdata=this.navParams.get('customerdata');
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]