Dojo-Parser und ein TypeError unter Verwendung der ArcGIS JS-API

Ich erhalte diesen Fehler:

TypeError: 'undefined' ist keine Funktion (Auswertung von 'parser.parse ()')

Hier ist mein Code.

<script> 
    require([
      "esri/map", 
      "esri/layers/FeatureLayer", 
      "esri/dijit/Legend",
      "esri/digit/HomeButton",
      "dojo/_base/array", 
      "dojo/parser",
      "dijit/layout/BorderContainer", 
      "dijit/layout/ContentPane", 
      "dijit/layout/AccordionContainer", 
      "dojo/domReady!"
], function(
  Map, FeatureLayer, Legend, arrayUtils, parser, HomeButton
) {
    parser.parse();

    var map = new Map("map", {
        basemap: "streets",
        center: [-87.702733, 41.998508],
        zoom: 15
    });

    var home = new HomeButton ({
        map: map
    }, "HomeButton");
    home.startup();

  var circuits = new FeatureLayer("http://54.243.188.50:6080/arcgis/rest/services/TYLIN/Streetlights_Pilot/MapServer/6", {
    mode: FeatureLayer.MODE_ONDEMAND,
    outFields:["*"]
  });

  var power = new FeatureLayer("http://54.243.188.50:6080/arcgis/rest/services/TYLIN/Streetlights_Pilot/MapServer/2", {
    mode: FeatureLayer.MODE_ONDEMAND,
    outFields:["*"]
  });


  //add the legend
  map.on("layers-add-result", function (evt) {
    var layerInfo = arrayUtils.map(evt.layers, function (layer, index) {
      return {layer:layer.layer, title:layer.layer.name};
    });
    if (layerInfo.length > 0) {
      var legendDijit = new Legend({
        map: map,
        layerInfos: layerInfo
      }, "legendDiv");
      legendDijit.startup();
    }
  });

  map.addLayers([circuits, power]);
});

</script>

Ich habe es geschafft, dies durch Aufteilen des HomeButton-Teils getrennt vom Legend-Teil zum Laufen zu bringen. In der Ecke muss ich dojo.parser.parse () aufrufen - aber das funktioniert nicht mit dem Legend-Teil.

Ich verstehe nicht wirklich, wie das Dojo / der Parser funktioniert, daher ist es für mich schwierig zu verstehen, warum einige Teile dojo.parser.parse () und andere parser.parse () erfordern.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage