无法将标记添加到 Angular Leaflet 指令
Unable to add marker to Angular Leaflet directive
我正在尝试向 Leaflet 指令添加标记,但它不接受使用默认 L.marker()
方法创建的标记。
指令使用如下:
<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 - Leaflet] The marker definition is not valid.
[AngularJS - Leaflet] Received invalid data on the marker 0.
我忽略了一些非常简单的事情,但我不知道是什么...任何线索将不胜感激。
$scope.markers
期望获得具有标记属性的对象,而不是标记本身。在您的示例中有用的只是一个 LatLng
对象,然后将其包装为 Marker
.
$scope.markers[0] = L.latLng(52.163815, 5.365131);
或者,如果你从外面得到 Marker
s,你可以从里面拿回来:
$scope.markers[0] = marker.getLatLng();
显然,这并没有传达其他标记的属性,只是传达了坐标。
我正在尝试向 Leaflet 指令添加标记,但它不接受使用默认 L.marker()
方法创建的标记。
指令使用如下:
<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 - Leaflet] The marker definition is not valid.
[AngularJS - Leaflet] Received invalid data on the marker 0.
我忽略了一些非常简单的事情,但我不知道是什么...任何线索将不胜感激。
$scope.markers
期望获得具有标记属性的对象,而不是标记本身。在您的示例中有用的只是一个 LatLng
对象,然后将其包装为 Marker
.
$scope.markers[0] = L.latLng(52.163815, 5.365131);
或者,如果你从外面得到 Marker
s,你可以从里面拿回来:
$scope.markers[0] = marker.getLatLng();
显然,这并没有传达其他标记的属性,只是传达了坐标。