1

angular-ui/ui-map 模块能够将 HTML 节点从 DOM 中的任何位置移动到 Google Maps InfoWindow 中,同时保留数据绑定。

<div ui-map-info-window="myInfoWindow">
  <h1>Marker {{marker.id}}}</h1>
  Lat: <input ng-model="currentMarkerLat">, ...
</div>

这只有效,因为 Google Maps v3 API 允许它传递一个 HTML 节点作为内容参数。

//ui-map.js line 55 - 60
opts.content = elm[0]; //elm[0] is the HTML Node
...
infoWindow = new google.maps.InfoWindow(opts);

我们尝试使用 OpenLayers.Popup 复制此功能,但未能在不丢失其 ng-databinding 的情况下移动 HTML 节点:

//contentDiv is the OpenLayers.Popup container for holding the HTML content to be displayed in the popup
this.contentDiv.appendChild(elm[0]);

这不起作用,只显示没有任何 AngularJS 绑定的 HTML 元素(例如,正在显示胡须,而不是变量值)。

Google Maps API v3 用于保留绑定的技巧是什么?

4

0 回答 0