Ngmap select 来自 javascript 的 ng-repeat 标记
Ngmap select ng-repeat marker from javascript
我在我的项目中使用 https://github.com/allenhwkim/angularjs-google-maps 指令
以下是在地图上绘制标记的代码示例
<map id="map" style="height:450px" zoom="4" zoom-to-include- markers='auto' center="{[{center.lat}]},{[{center.long}]}" on-center-changed="centerChanged()">
<marker id={[{$index}]} animation="DROP" ng-repeat="location in locations" position="{[{location.latitude}]},{[{location.longitude}]}" on-click="click()" title="Click to zoom"></marker>
</map>
我现在必须从 javascript 函数中 select 这些标记。
按 id 选择标记将标记作为 dom 元素,如下所示
<marker id="1" animation="DROP" ng-repeat="location in locations" position="10.0050407,76.3459498" on-click="click()" title="Click to zoom" class="ng-scope"></marker>
而不是 google 映射标记对象
有什么方法可以通过 ng-repeat 将 select 标记初始化为 google 来自 javascript 的地图标记对象?
您可以使用 angular 的范围获取 Marker
对象。我没有看到你的 JS 代码,但是从 Angularjs-Google-Maps example 每个标记都可以通过 $scope.map.markers[key]
引用,其中 $scope.map.markers
是你范围内的标记数组。
var app=angular.module('myapp', ['ngMap']);
app.controller('MarkerRemoveCtrl', function($scope) {
$scope.positions = [{lat:37.7699298,lng:-122.4469157}];
$scope.addMarker = function(event) {
var ll = event.latLng;
$scope.positions.push({lat:ll.lat(), lng: ll.lng()});
}
$scope.deleteMarkers = function() {
$scope.positions = [];
};
$scope.showMarkers = function() {
for (var key in $scope.map.markers) {
$scope.map.markers[key].setMap($scope.map);
};
};
$scope.hideMarkers = function() {
for (var key in $scope.map.markers) {
$scope.map.markers[key].setMap(null);
};
};
});
我在我的项目中使用 https://github.com/allenhwkim/angularjs-google-maps 指令
以下是在地图上绘制标记的代码示例
<map id="map" style="height:450px" zoom="4" zoom-to-include- markers='auto' center="{[{center.lat}]},{[{center.long}]}" on-center-changed="centerChanged()">
<marker id={[{$index}]} animation="DROP" ng-repeat="location in locations" position="{[{location.latitude}]},{[{location.longitude}]}" on-click="click()" title="Click to zoom"></marker>
</map>
我现在必须从 javascript 函数中 select 这些标记。 按 id 选择标记将标记作为 dom 元素,如下所示
<marker id="1" animation="DROP" ng-repeat="location in locations" position="10.0050407,76.3459498" on-click="click()" title="Click to zoom" class="ng-scope"></marker>
而不是 google 映射标记对象
有什么方法可以通过 ng-repeat 将 select 标记初始化为 google 来自 javascript 的地图标记对象?
您可以使用 angular 的范围获取 Marker
对象。我没有看到你的 JS 代码,但是从 Angularjs-Google-Maps example 每个标记都可以通过 $scope.map.markers[key]
引用,其中 $scope.map.markers
是你范围内的标记数组。
var app=angular.module('myapp', ['ngMap']);
app.controller('MarkerRemoveCtrl', function($scope) {
$scope.positions = [{lat:37.7699298,lng:-122.4469157}];
$scope.addMarker = function(event) {
var ll = event.latLng;
$scope.positions.push({lat:ll.lat(), lng: ll.lng()});
}
$scope.deleteMarkers = function() {
$scope.positions = [];
};
$scope.showMarkers = function() {
for (var key in $scope.map.markers) {
$scope.map.markers[key].setMap($scope.map);
};
};
$scope.hideMarkers = function() {
for (var key in $scope.map.markers) {
$scope.map.markers[key].setMap(null);
};
};
});