AngularJS ngRepeat函数调用

AngularJS ngRepeat函数调用,angularjs,leaflet,marker,function-calls,ng-repeat,Angularjs,Leaflet,Marker,Function Calls,Ng Repeat,我正在应用程序中使用传单地图,但我需要在此地图中添加标记。我需要从json文件中获取有关此标记的坐标的信息 所以我的计划是在我的视图中使用一个ng repeat(marker中的marker),然后在我的控制器中为每个marker调用一个函数(createMarkers(marker.lat,markter.lng)) 但我不知道这是否可能?也许还有别的办法 希望得到一些帮助:) 控制器 HTML 所以我的计划是在我的视图中使用一个ng repeat(marker中的marker),然后在我的控

我正在应用程序中使用传单地图,但我需要在此地图中添加标记。我需要从json文件中获取有关此标记的坐标的信息

所以我的计划是在我的视图中使用一个ng repeat(marker中的marker),然后在我的控制器中为每个marker调用一个函数(createMarkers(marker.lat,markter.lng))

但我不知道这是否可能?也许还有别的办法

希望得到一些帮助:)

控制器 HTML 所以我的计划是在我的视图中使用一个ng repeat(marker中的marker),然后在我的控制器中为每个marker调用一个函数(createMarkers(marker.lat,markter.lng))

我对传单不太熟悉,但我似乎写的是在标记上深入查看
$watch

JS

控制台

演示


希望它能有所帮助……

plaatsMarkers()应该创建从json文件获取的标记。是的,对不起,忘记了我们不能保证在摘要期间调用函数一次。我改变了我的答案!你真的帮了我很多!
lycheeControllers.controller(
  'routeCtrl',
  [
    '$scope',
    '$http',
    function ($scope, $http) {
      $http.get('json/route.json').success(
        function (data) {
          $scope.titel = "Transport route van India naar Italie"
          $scope.markers = data;

          var map = new L.Map('map');

          L.tileLayer(
            'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
            {
              maxZoom: 18
            }
          ).addTo(map);

          map.attributionControl.setPrefix(''); // Don't show the 'Powered by Leaflet' text.

          var muzzafarpur = new L.LatLng(26.117482, 85.363364);
          map.setView(muzzafarpur, 3);

          $scope.plaatsMarkers = function(){
            alert("test");
          }

          //Extend the Default marker class
          var RedIcon = L.Icon.Default.extend(
            {
              options: {
                iconUrl: '../app/img/marker-icon.png'
              }
            }
          );

          var redIcon = new RedIcon();
        }
      );
    }
  ]
);
<section id="panel">
<section id="titel">{{titel}}</section>

<div id="map">
  <div ng-repeat="mark in markers">{{plaatsMarkers()}}</div>
</div>
[
  {
    "naam": "lychee",
    "markers": [
      {
        "mark": [
          {
            "naam": "Muzzafarpur",
            "tekst": "Lycheeplantage: de lychees worden per vrachtwagen tot de haven van Kolkata gebracht.",
            "datum": 1,
            "lng": 26.117482,
            "lat": 85.363364
          },
          {
            "naam": "Kolkata",
            "tekst": "Van hieruit vertrekt het hoofdtransport richting Gioia Tauro.",
            "datum": 2,
            "lng": 22.572765,
            "lat": 88.363975
          },
          {
            "naam": "Colombi (Sri Lanka)",
            "tekst": "Hier wordt een tussenstop gemaakt",
            "datum": 3,
            "lng": 6.947216,
            "lat": 79.844486
          },
          {
            "naam": "Golf van Aden",
            "tekst": "Risico wegens piraterij.",
            "datum": 4,
            "lng": 12.640338,
            "lat": 47.849579
          },
          {
            "naam": "Suezkanaal",
            "tekst": "Hier dient tol betaald te worden. Deze route bespaart echter wel in afstand.",
            "datum": 5,
            "lng": 30.841705,
            "lat": 32.317608
          },
          {
            "naam": "Malta",
            "tekst": "Hier wordt er overgeschakelt naar een ander schip (JRS Capella) en via de FAS Adriatic 2 Feeder Service wordt er verder koerst gezet richting Gioia Tauro.",
            "datum": 6,
            "lng": 35.902973,
            "lat": 14.523021
          },
          {
            "naam": "Gioia Tauro",
            "tekst": "Aankomst in Italie. Van hieruit worden de lychees vervoert naar de verschillende Carrefour winkels.",
            "datum": 7,
            "lng": 38.443573,
            "lat": 15.898798
          }
        ]
      }
    ]
  }
]
 $scope.$watch('list[0].markers[0].mark', function(rows) { 
    angular.forEach(rows, function(pixel){
    $scope.createMarkers(pixel);
    });        
}, true);


$scope.createMarkers = function(marker){
 console.log(marker.lat, marker.lng);
};
85.363364 26.117482
88.363975 22.572765
79.844486 6.947216
47.849579 12.640338
32.317608 30.841705
14.523021 35.902973
15.898798 38.443573