Цель состоит в том, чтобы нарисовать круг на карте, чтобы определить правило геозоны и обновить поля формы на основе координат и радиуса круга.
Я добавил обработку radius_changed внутри описателя circlecomplete, например:
const _self = this;
const precision = 1000000;
// handle draging
google.maps.event.addListener(circle, 'radius_changed', function () {
_self.updateLocationData({
latitude: Math.round(circle.getCenter().lat() * precision) / precision,
longitude: Math.round(circle.getCenter().lng() * precision) / precision,
radius: Math.round(circle.getRadius())
});
});
Он запускает метод updateLocationData, определенный как:
updateLocationData(data: any) {
this.circleUpdateSource$.next(data);
}
То, что яЯ подписан в ngOnInit:
this.circleUpdateSource.subscribe((data: any) => {
console.log(data);
this.test = data.radius;
this.rule = {
radius: data.radius,
lat: data.latitude,
lng: data.longitude
};
});
Все работает хорошо, кроме привязки данных в подписке на шаблон. Console.log выводит сразу же, когда событие инициируется, но {{test}} или {{rule}} обновляется ТОЛЬКО после того, как курсор выходит из круга или если я нажимаю на карте за пределами круга. Любая идея?