In Ionic 4, I am trying to use the modalController
to open a modal. I am able to open the modal and send componentProps
, but I'm not sure how to receive those properties.
Here's how I open the modal component:
async showUpsert() {
this.modal = await this.modalController.create({
component:UpsertComponent,
componentProps: {test: "123"}
});
return await this.modal.present();
}
My question is; in the actual modal, how do I get test: "123"
into a variable?
You can take those values with Input Component Interaction in the component you will need it, for example:
import { Component } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { TestComponent } from '../test/test.component';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss']
})
export class HomePage {
constructor(public modalController: ModalController){}
async presentModal() {
const modal = await this.modalController.create({
component: TestComponent,
componentProps: { value: 123, otherValue: 234 }
});
return await modal.present();
}
}
In your modal component with Input you can take those params:
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.scss']
})
export class TestComponent implements OnInit {
@Input("value") value;
@Input() otherValue;
constructor() { }
ngOnInit() {
//print 123
console.log(this.value);
//print 234
console.log(this.otherValue);
}
}