2

我突然间得到了这一点,它不让我使用我的传单地图。每次我点击地图时,标记都会添加到相同的坐标上。当我尝试使用某个函数删除标记时,它会清空标记数组,但标记在地图上仍然可见。这是怎么回事?角度令牌错误

Error: [$parse:syntax] Syntax Error: Token '.0' is an unexpected token at column 8 of the expression [markers.0] starting at [.0]. 
http://errors.angularjs.org/1.4.8/$parse/syntax?p0=.0&p1=is%20an%20unexpected%20token&p2=8&p3=markers.0&p4=.0 
    at angular.js:68 
    at Object.AST.throwError (angular.js:13100) 
    at Object.AST.ast (angular.js:12870) 
    at Object.ASTCompiler.compile (angular.js:13319) 
    at Parser.parse (angular.js:14189) 
    at $parse (angular.js:14291) 
    at Scope.$watch (angular.js:15482) 
    at createMarker (angular-leaflet-directive.js:1016) 
    at Object.fn (angular-leaflet-directive.js:795) 
    at Scope.$digest (angular.js:15896) 

这里有一些代码,如果有帮助。

Controller.js:

$scope.location = {lat: 8.812354, lng: -11.887342}; 

      $scope.center = { 
       lat: 8.812354, 
       lng: -11.887342, 
       zoom: 8 
      }; 

      $scope.markers = []; 
      $scope.markers.push({ 
       lat: 8.812354, 
       lng: -11.667342, 
       message: "hehe" 
      }); 

    //This one is added to the array, but doesn't show up in the map 
      $scope.markers.push({ 
       lat: 7.812354, 
       lng: -10.667342, 
       message: "WOOP" 
      }); 

$scope.$on("leafletDirectiveMap.click", function (event, args) { 

      var leafEvent = args.leafletEvent; 
      console.log('Ctrl3 adding marker at lat=' + leafEvent.latlng.lat + ', lng=' + leafEvent.latlng.lng); 
      $scope.location.lng = leafEvent.latlng.lng; 
      $scope.location.lat = leafEvent.latlng.lat; 

      $scope.markers.push({ 
       lat: leafEvent.latlng.lat, 
       lng: leafEvent.latlng.lng, 
       message: "My Added Marker" 
      }); 
     }); 

HTML:

<leaflet class="col-md-offset-4 map" defaults="defaults" markers="markers" center="center" layers="layers"></leaflet> 
+1

有些代码可能会帮助 –

+0

添加一些代码了。告诉我是否需要更多! –

回答

1

注意$scope.markerssupposed to be an object,而不是阵列。该指令试图枚举markers对象的属性,并且失败了数组的属性。

更改$scope.markers{},并在一些关键的,而不是push它荷兰国际集团到阵列中添加新标记的对象,例如:

$scope.markers = {}; 

// ... 

var idx = 0; 
$scope.$on("leafletDirectiveMap.click", function (event, args) { 
    idx += 1; 

    $scope.markers['marker' + idx] = { 
     // ... 
    }; 
}); 
+0

谢谢你的男人!它现在工作!和平兄弟! :d –