angular - Hvordan overføre data fra ModalService til komponent
Jeg prøver å bruke ngx-bootstrap-modal for å sende data fra en modal-tjeneste til en modal-komponent. Eksemplene viser dette:
this.modalService.show(ModalContentComponent, {initialState});
Men det viser ikke hvordan ModalContentComponent faktisk bruker den tilstanden. Jeg har lekt rundt i en debugger og jeg ser aldri at komponenten min får den dataen.
Hvordan får jeg tilgang til det fra komponenten?
Svar #1
Her, i parentComponent hvor initialState-data sendes ved å bruke config-param i modalService.show:
const initialState = {
data: "Test Data"
};
this.modalService.show(ModalContentComponent, {initialState});
Få tilgang til dataene i ModalContentComponent ved å ganske enkelt definere en variabel med akkurat samme navn, dvs. data: string; Du vil kunne få tilgang til verdien av data i ModalContentComponent.html og ModalContentComponent.ts.
Svar #2
På stadiet for å lage en modal, blir hver egenskap fra initialState kopiert til komponenten du sender inn som modalinnhold.
For eksempel, hvis din initialState ser slik ut:
const initialState = {
list: [
'Open a modal with component',
'Pass your data',
'Do something else',
'...',
'PROFIT!!!'
],
title: 'Modal with component',
closeBtnName: 'Close'
};
Da kopieres alle disse egenskapene til komponenten for modalinnholdet ditt, og de er tilgjengelige der, og du kan bruke dem i malen din eller ngOnInit som vanlig. Generelt er disse egenskapene som @Input.
Eksempel - https://stackblitz.com/edit/angular-9n2zck?file=app/service-component.ts
