AngularJS - 循环遍历数组抛出语法错误

时间:2015-01-23 19:50:00

标签: javascript arrays angularjs angularjs-scope

我有这个代码,我希望将数组数据推送到显示地图上的引脚的范围内。它显示了第一个引脚,但没有显示其他引脚。

当它运行时我收到错误:错误: [$ 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>

任何想法我做错了什么?感谢

2 个答案:

答案 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)

我得到了同样的错误,我用这种方式修复了它:

  1. 更新angular-leaflet-directive版本angular-leaflet-directive source

  2. 将angular-simple-logger包含在我的项目angular-simple-logger source