1
我試圖給Leaflet指令添加一個標記,但不知何故它不接受使用默認L.marker()
方法創建的標記。無法將標記添加到Angular Leaflet指令
該指令的使用方法如下:
<leaflet markers="markers" center="center" layers="layers" defaults="defaults"></leaflet>
我延長我在控制器$scope
規定:
angular.extend($scope, {
markers: {},
//markers: { { someName: {lat:52.163815,lng:5.365131} } //this does work
});
添加標記後不以某種方式工作。首先,.markers
對象不是一個數組,因此我不能只使用push()
來添加任何元素。但是,即使添加作爲關聯數組的元素不工作:
var marker = L.marker(L.latLng(52.163815, 5.365131));
$scope.markers[0] = marker;
錯誤是:
[AngularJS - 傳單該標記定義無效。
[AngularJS - 傳單]收稿上的標記0
我俯瞰很簡單的東西無效的數據,但我還是不知道什麼...任何鉛將不勝感激。
爲什麼你需要用'L.marker'創建你的標記? Angular只期望[具有一組可能屬性的簡單對象](https://github.com/tombatossals/angular-leaflet-directive/blob/master/doc/markers-attribute.md#marker-attributes),完全像你沒有初始化'$ scope.markers'。只需稍後將簡單的普通對象添加到您的'$ scope.markers'對象。您可以使用增量器來獲取唯一鍵,並避免在需要時覆蓋以前的對象(請參閱https://stackoverflow.com/questions/33901333/angular-token-error) – ghybs