마커를 지우려면 .. 다음으로AngularJS와 - 내가 몇 가지 작은 문제 .. 시도 여러 가지 방법을 가지고 있지만 새로운 마커를 추가하기 전에 마커를 제거 할 수 있지만, 내가 설치가 제대로 작동 다음 한
예를 들어 컨트롤러에서 푸시 할 때마다 마커가 계속 추가됩니다. 새 마커를 추가하기 전에 기존 마커를 지우는 가장 좋은 방법은 무엇입니까?
var module = angular.module('Map', []);
module.directive('sap', function() {
return {
restrict: 'E',
replace: true,
template: '<div></div>',
link: function(scope, element, attrs) {
var map = L.map(attrs.id, {
center: [-35.123, 170.123],
zoom: 14
});
//create a CloudMade tile layer and add it to the map
L.tileLayer('http://{s}.tile.cloudmade.com/57cbb6ca8cac418dbb1a402586df4528/997/256/{z}/{x}/{y}.png', {
maxZoom: 18
}).addTo(map);
//add markers dynamically
var points = [];
updatePoints(points);
function updatePoints(pts) {
for (var p in pts) {
L.marker([pts[p].lat, pts[p].long]).addTo(map).bindPopup(pts[p].message);
}
}
scope.$watch(attrs.pointsource, function(value) {
updatePoints(value);
});
}
};
});
그리고 컨트롤러 내부
는 새로운 마커를 추가 할 수있는 방법은 HTML에서 $scope.pointsFromController.push({
lat: val.geoLat,
long: val.geoLong
});
코드 pointsFromController
가정
<sap id="map" pointsource="pointsFromController"></sap>