首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AGM映射绑定问题

AGM映射绑定问题
EN

Stack Overflow用户
提问于 2019-10-24 13:40:39
回答 1查看 207关注 0票数 0

目标是在地图上绘制圆,以定义geofence规则,并根据圆的坐标和半径更新表单域。

我将radius_changed处理添加到了handle完全句柄中,如下所示:

代码语言:javascript
复制
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方法:

代码语言:javascript
复制
updateLocationData(data: any) {
this.circleUpdateSource$.next(data);

}

我在ngOnInit中订阅的内容:

代码语言:javascript
复制
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 }}或{{rule}}仅在光标移出圆圈或单击圆圈外的地图后才会更新。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-10-24 15:21:01

我发现了别人可以从中受益的诀窍!您需要手动调用tick来触发模板中的更新!

代码语言:javascript
复制
this.appRef.tick();

在导入中:

代码语言:javascript
复制
ApplicationRef

在构造函数中:

代码语言:javascript
复制
private appRef: ApplicationRef
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58534792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档