Я использую ng-simple-modal для создания модального режима. Используя SimpleModalService
, я могу открыть компонент, и переданные данные также привязываются к пользовательскому интерфейсу.Но когда я попытался получить доступ к данным из конструктора, они стали неопределенными.
PrintPreviewComponent.ts
import { Component, OnInit, OnDestroy, Output, EventEmitter, Input } from '@angular/core';
import { SimpleModalComponent } from 'ngx-simple-modal';
import { MapService } from '../../map/map.service';
var $ = (<any>window).$;
export interface AlertModel {
title: string;
message: string;
extent : any;
}
@Component({
selector: 'app-print-preview',
template: require('./printpreview.html'),
styles: [require('./printpreview.scss')],
})
export class PrintPreviewComponent extends SimpleModalComponent<AlertModel, null> implements AlertModel , OnInit, OnDestroy {
static parameters = [MapService];
title: string;
message: string;
extent: any;
constructor(private mapService: MapService) {
super();
console.log(this.extent);
console.log(this.mapDataObject);
}
ngOnInit() {
this.mapService.loadMap('previewmap').then(mapObj => {
this.mapService.addBaseMapTileLayer();
});
}
ngViewAfterInit() {
}
ngOnDestroy() {
}
}
<div class="lightbox">
<div class="tc-content modal-content">
<div class="modal-header">
<h4>{{title || 'Alert!'}}</h4>
</div>
<div class="modal-body">
<div id="previewmap">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" (click)="close()">OK</button>
</div>
</div>
</div>
Я открыл этот компонент как
let extent = this.mapService.getExtent();
this.simpleModalService.addModal(PrintPreviewComponent, { title: 'Print Preview' , extent: extent});
, но в конструкторе printpreview.component
, когда попытался получить доступ к переданному extent
становится неопределенным
constructor(private mapService: MapService) {
super();
console.log(this.extent);//getting undefined[![enter image description here][1]][1]
console.log(this.mapDataObject);
}