【发布时间】:2016-08-03 12:23:08
【问题描述】:
如何更新模型以加载新的标记数据集?
<ui-gmap-google-map center="map.center" zoom="map.zoom" bounds="map.bounds" refresh="map.refresh">
<ui-gmap-markers
models="dataset"
coords="'self'"
icon="'icon'"
doCluster='10'
click="onClick"
>
<ui-gmap-windows show="show">
<div ng-non-bindable>
<h3 class="gray3-text fz13 mbottom0">{{title}}</h3>
</div>
</ui-gmap-windows>
</ui-gmap-markers>
我正在从 ui-gmap-google-map 指令外部更改数据集,就像这样
<p ng-click="changeDataset('allUsers')" class="cursor-pointer">
<p ng-click="changeDataset('allQuotations')" class="cursor-pointer">
函数是这样的:
scope.changeDataset = function(){
switch (dataset) {
case 'allResellers':
scope.dataset = scope.allResellers;
break;
case 'allQuotations':
scope.dataset = scope.allQuotations;
break;
case 'allUsers':
scope.dataset = scope.allUsers;
break;
case 'allMarkers':
scope.dataset = scope.allMarkers;
break;
}
};
我的 scope.dataset 发生了变化,但它不会更新地图中的标记。
PS:modelsbyref="false" 不起作用。
将 control="markerControl" 添加到 ui-gmap-google-map 有效,但必须使用此解决方法:
angular.element(document.getElementsByClassName('angular-google-map')).scope().markerControl.updateModels(newDataset);
<ui-gmap-google-map center="map.center" zoom="map.zoom" bounds="map.bounds">
<ui-gmap-markers
models="dataset"
coords="'self'"
icon="'icon'"
doCluster='10'
click="onClick"
control="markerControl"
>
<ui-gmap-windows show="show">
<div ng-non-bindable>
<h3 class="gray3-text fz13 mbottom0">{{title}}</h3>
</div>
</ui-gmap-windows>
</ui-gmap-markers>
【问题讨论】:
标签: angularjs google-maps model angular-google-maps