ионные 3, передающие данные в popover
Я не могу заставить его работать. Код вызова всплывающего окна
presentPopover(myEvent){
//alert('invoke popup')
let popover = this.popoverCtrl.create(PopoverPage, this.data);
popover.present(
{
ev: myEvent
}
);
}
и часть, в которой мне сейчас нужно получить доступ:
export class PopoverPage{
constructor(public viewCtrl: ViewController) {
// alert('in the popup')
//alert(this.data)
}
Итак, как данные будут avaialbe в компоненте страницы popupover?
Ответы
Ответ 1
Параметры/данные могут быть переданы в Popover, как это
let popover = this.popoverCtrl.create(PopoverPage, {key1:value1, key2: value2});
И затем вы можете использовать NavParams
для получения данных, переданных в Popover.
export class PopoverPage{
constructor(public navParams:NavParams) {
console.log(this.navParams.data);
let value1 = this.navParams.get('key1');
let value2 = this.navParams.get('key2');
}
}
Для ionic v4 вы можете отправлять данные с помощью componentProps
чтобы передавать данные и получать их через navParams.
const popover = await this.popoverController.create({
component: PopoverPage,
componentProps:{key1:value1, key2: value2}
});
return await popover.present()
Ответ 2
Вы должны передать this.data как объект json, после чего вы можете получить доступ к значению с помощью ключа.
Вызов всплывающего окна:
presentPopover(myEvent){
//alert('invoke popup')
this.data = {data_key:'your_value'};
let popover = this.popoverCtrl.create(PopoverPage, this.data);
popover.present(
{
ev: myEvent
}
);
}
Доступ к значению из popover:
export class PopoverPage{
constructor(public viewCtrl: ViewController,public navParams:NavParams) {
// alert('in the popup');
//alert(this.navParams.get('data_key'));
}
}