Sta*_*two 4 javascript google-maps google-maps-api-3 google-maps-markers angularjs
我正在尝试在我的地图控制器中动态添加多个标记,但我无法获取id来迭代并显示我的所有标记,如何设置它以获取所有标记并正确显示它们,错误我得到的是:
标记模型没有id来分配子项.这是性能所必需的.请指定ID,或将ID重定向到其他键
ShowList.enderecoViagem(viagens_id).then(function (listview) {
$scope.enderecos = listview;
uiGmapGoogleMapApi.then(function (maps) {
$scope.googlemap = {};
$scope.map = {
center: {
latitude: $scope.enderecos[0].latitude,
longitude: $scope.enderecos[0].longitude
},
zoom: 14,
pan: 1,
options: $scope.mapOptions,
control: {},
events: {
tilesloaded: function (maps, eventName, args) {},
dragend: function (maps, eventName, args) {},
zoom_changed: function (maps, eventName, args) {}
}
};
});
$scope.windowOptions = {
show: false
};
$scope.title = "Window Title!";
uiGmapIsReady.promise() // if no value is put in promise() it defaults to promise(1)
.then(function (instances) {
console.log(instances[0].map); // get the current map
})
.then(function () {
$scope.addMarkerClickFunction($scope.markers);
});
for(var i = 0; i < $scope.enderecos.length; i++) {
$scope.markers = [];
$scope.markers.push({
id:[i],
latitude: $scope.enderecos[i].latitude,
longitude: $scope.enderecos[i].longitude
});
}
}
Run Code Online (Sandbox Code Playgroud)
问题出在这里:
$scope.markers.push({
id:[i],
latitude: $scope.enderecos[i].latitude,
longitude: $scope.enderecos[i].longitude
});
Run Code Online (Sandbox Code Playgroud)
在你指定id属性的地方,你已经将它包装在数组中,[ ]
这只有在您实际访问数组值时才有意义,例如您所在的位置enderecos[i].latitude.或者,如果您尝试将数组传递给id属性,但我很确定它会期待一个简单的字符串或整数.
只需将其更改为此,您应该没问题:
$scope.markers.push({
id: i,
latitude: $scope.enderecos[i].latitude,
longitude: $scope.enderecos[i].longitude
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2604 次 |
| 最近记录: |