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 –