我有这个代码,我希望将数组数据推送到显示地图上的引脚的范围内。它显示了第一个引脚,但没有显示其他引脚。
当它运行时我收到错误:错误: [$ parse:syntax]语法错误:令牌' .0'是表达式[markers.0]第8列的一个意外标记,从[.0]开始。
我的代码是:
$scope.markers = [];
var pos = [
{
lat: 51.918374,
lng: 19.594210
},
{
lat: 51.018374,
lng: 19.094210
},
{
lat: 52.518374,
lng: 19.594210
},
{
lat: 52.018374,
lng: 19.694210
}];
pos.forEach(function(value){
$scope.markers.push({
lat: value.lat,
lng: value.lng,
message: "aaaa",
focus: false,
draggable: false
});
});
尝试使用angular.forEach:
var pos = [
{
lat: 51.918374,
lng: 19.594210
},
{
lat: 51.018374,
lng: 19.094210
},
{
lat: 52.518374,
lng: 19.594210
},
{
lat: 52.018374,
lng: 19.694210
}];
var log = [];
angular.forEach(pos, function(value, key) {
this.push({
lat: value.lat,
lng: value.lng,
message: "aaaa",
focus: false,
draggable: false
});
}, log);
console.log(log);
$scope.markers = log;
HTML:
<leaflet layers="map" center="map.center" overlay="map.overlays" markers="markers" ng-if="map"></leaflet>
任何想法我做错了什么?感谢
答案 0 :(得分:0)
基于this,标记应该是一个对象,而不是一个数组。
$scope.markers = {};
var pos = [{
lat: 51.918374,
lng: 19.594210
}, {
lat: 51.018374,
lng: 19.094210
}, {
lat: 52.518374,
lng: 19.594210
}, {
lat: 52.018374,
lng: 19.694210
}];
pos.forEach(function (value, index) {
$scope.markers[index] = {
lat: value.lat,
lng: value.lng,
message: "aaaa",
focus: false,
draggable: false
};
});
答案 1 :(得分:0)
我得到了同样的错误,我用这种方式修复了它:
更新angular-leaflet-directive版本angular-leaflet-directive source
将angular-simple-logger包含在我的项目angular-simple-logger source