我对标记上的点击事件的性能有疑问。
这是我的地图视图:
<div class="map-wrapper">
<map center="{{mapCenter}}" street-view-control="false" zoom-control="false" map-type-control="false" zoom="14">
<marker position="{{place.coords}}" title="{{place.name}}" icon="{{place.icon}}" ng-repeat="place in places" on-click="select(place.id)"></marker>
</map>
</div>
这是一个调用相同功能的按钮(相同的视图和控制器):
<button ng-click="select(null, 13)">My test button</button>
这是我的功能:
$scope.select = function(event, placeId) {
$log.debug('select called');
$location.path('/places/' + placeId);
};
当我点击按钮时,会出现console.log并立即发生位置更改。当我单击标记时,console.log立即出现,但位置更改最多需要5秒。
知道这是怎么回事吗?
答案 0 :(得分:0)
尽量避免ng-repeat使用ui-gmap-markers,而是使用点击参数连接你的处理程序。
答案 1 :(得分:0)
在我的情况下,在超时函数中调用$ scope上的$ digest()就可以了:
$timeout(function () {
$scope.$digest();
});