2014-10-08 21 views
0

我遇到了標記點擊事件的性能問題。標記點擊事件的性能很差

這是我的地圖視圖:

<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

您可以加入一個plnkr這個?我會看看它。 FYI,地圖上使用的事件是純粹的谷歌地圖V3事件。 – allenhwkim 2014-10-08 13:17:32

回答

0

在我的情況在$範圍調用$摘要()在超時功能的伎倆:

$timeout(function() { 
    $scope.$digest(); 
}); 
0

儘量避免ng-repeat使用ui-gmap-markers代替它有一個單擊參數來連接你的處理程序。