2017-07-11 1 views
1

Comment appeler une fonction avec la même dépendance de l'extérieur de la fonction? La dépendance est pas globale, il semble donc la fonction appelée ne sait pas FeatureLayerrequirejs appelle une fonction externe avec la même dépendance

require(
[ 
"esri/map", 
"esri/layers/FeatureLayer", 
"esri/dijit/PopupTemplate", 
"esri/geometry/Point", 
"esri/graphic", 
"dojo/domReady!" 
], 
function(Map, FeatureLayer, PopupTemplate, Point, Graphic){ 
    map = new Map("mapDiv", { basemap: "streets", center: [22, 65], zoom: 5 }); 
    getBasestationList(); 
}; 
}); 

function getBasestationList() { 
    fromdatetime = fromdatetime.toLocaleString(); 
    todatetime = todatetime.toLocaleString(); 
    $.ajax(
    { 
     type: "post", 
     url: "{% url 'get_latest_basestation_list' %}", 
     data: 
     { 
      "csrfmiddlewaretoken": "{{ csrf_token }}", 
      "fromdate": fromdatetime, 
      "todate": todatetime, 
     }, 
     success: function (data, status) 
     { 
      featureLayer = new FeatureLayer(data, { id: 'basestations' }); 
      map.addLayers([featureLayer]); 
     }, 
     error: function (request, status, error) 
     { 
      alert(request.responseText); 
     } 
    }); 
}; 

Cependant, cela me donne une erreur FeatureLayer n'est pas défini, car il ne dispose pas de cette dépendance. Comment ajouter une dépendance à une fonction externe et l'appeler depuis ma fonction?

Répondre

0

Pouvez-vous passer l'objet FeatureLayer à la méthode comme getBasestationList (FeatureLayer) et voir si vous pouvez le référencer?

Une autre méthode consiste à déclarer une variable globale et à lui affecter une référence FeatureLayer.

Problème avec votre code est cette fonction getBasestationList() semble être en dehors de la portée. Vous devez donc avoir une variable globale définie pour utiliser cet objet.