buildMarkers(cars): void {
return Observable.create(observer => {
for (let i in cars) {
let lat: number = cars[i].coordinates.lat;
let lon: number = cars[i].coordinates.lon;
let pin = cars[i].pin;
let singleMarker = new Marker([lat, lon], {
icon: new DivIcon({
className: 'my-div-icon',
html: this.getHtmlMarker(cars, pin)
})
});
this.layers.push(singleMarker);
};
observer.next();
observer.complete()
});
};
public mapReady(map) {
this.map = map;
let that = this;
that.buildMarkers(this.cars).subscribe(() => {
// тут выполните код, который гарантированно выполнится после buildMarkers
});
};
//Service
@Output() change: EventEmitter[];
categoryModalisOpen[] = [];
toggleCreateCategoryModal(key) {
this.categoryModalisOpen[key] = !this.categoryModalisOpen[key];
this.change[key].emit(this.categoryModalisOpen[key]);
}
//BtnComponent
@ViewChild('modalComponentInstance') // # ссылка на компонент нужного модального окна
modalComponentInstance;
constructor(
private CreateCategoryModalService: CreateCategoryModalService
) { }
openCreteCatModal() {
let key = this.modalComponentInstance.key; // Нужно подключить инстанс окна которое должно открываться по текущей кнопке
this.CreateCategoryModalService.toggleCreateCategoryModal(key);
}
//ModalComponent
creatCatIsOpen = false;
key: number;
ngOnInit() {
this.key = this.CreateCategoryModalService.categoryModalisOpen.lenght + 1;
this.CreateCategoryModalService.change[this.key].subscribe(isOpen => {
this.creatCatIsOpen = isOpen;
});
}
constructor(
private CreateCategoryModalService: CreateCategoryModalService
) { }