Esri ArcGIS JS API动态加载模块

时间:2017-06-01 15:10:12

标签: javascript dynamics-crm arcgis esri arcgis-js-api

我对使用Esri的ArcGIS API相当陌生,我目前正在尝试为Dynamics 365 / CRM构建集成。现在我遇到了一个问题,因为每次渲染地图时我都需要动态加载不同的模块。

实际加载模块不是问题,问题是来自require方法的回调方法的参数,因为我无法动态地将每个模块插入到脚本中。

我通过循环遍历参数并根据declaredClass参数将每个参数分配给变量来解决此问题。例如:

var Map, MapView, SceneView, Search;    
for (var i = 0; i < arguments.length; i++) {
    var arg = arguments[i];
    var obj = arg();
    if (obj.declaredClass == "esri.Map") {
        Map = obj;
    } else if (obj.declaredClass == "esri.views.MapView") {
        MapView = obj;
    } else if (obj.declaredClass == "esri.views.SceneView") {
        SceneView = obj;
    } else if (obj.declaredClass == "esri.widgets.Search") {
        Search = obj;
    }
}

这似乎有效,但我注意到我无法创建这些对象的新实例。相反,我只是在控制台中收到以下错误:

  

未捕获的TypeError:搜索不是构造函数

但是,我可以使用该对象并为其指定值来渲染地图,而无需初始化它的新实例。

任何人都可以通过这种方式告诉我,如果我做错了,或者是否有更好的方法来动态获取这些参数?

0 个答案:

没有答案