使用Durandal dojoConfig和ESRI Maps

时间:2013-06-04 20:41:59

标签: dojo durandal esri

我正在尝试让ESRI地图与Durandal合作,并在Durandal文档DurandalEsri

中遇到此链接

这似乎有效,但现在Durandal在找到我的.js文件时遇到了问题。如果我将以下dojoConfig保留,我的脚本会被找到,但是地图将不起作用。

`var dojoConfig = {
    baseUrl: './',
    async: true,
    tlmSiblingOfDojo: true,
    parseOnLoad: false,
    aliases: [['text', 'dojo/text']],
    packages: [
        { name: 'esri', location: '//serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/esri' },
        { name: 'dojo', location: '//serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/dojo/dojo' },
        { name: 'dojox', location: '//serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/dojo/dojox' },
        { name: 'dijit', location: '//serverapi.arcgisonline.com/jsapi/arcgis/3.5/js/dojo/dijit' },
        { name: 'durandal', location: 'App/durandal' },
        { name: 'views', location: 'App/views' },
        { name: 'viewmodels', location: 'App/viewmodels' },
        { name: 'lib', location: 'App/lib' }
    ]
};`

我的应用结构如下所示:

  • 应用
    • 迪朗达尔
    • LIB
    • 服务
    • 的ViewModels
    • 视图

所以在我的shell.js文件中,如果我尝试传入'lib / config',我得到一个404,因为它试图在localhost / lib / config.js而不是localhost / dashboard / app / lib中找到配置文件/config.js

如果我将'dashboard / app / lib / config'传递给shell.js,将会找到该文件,但似乎我不应该指定整个路径,因为'durandal / system'和其他任何东西在'durandal'文件夹下找到正确的。

任何想法???

2 个答案:

答案 0 :(得分:0)

我在使用Esri加载AMD模块时遇到了类似的问题。我使用类似于你的配置解决了它,但使用了以下baseurl:

baseUrl: location.pathname.replace(/\/[^/]+$/, '') + '/path/to/app/main'

正如Jeffrey Grajkowski对我的问题的回答所述:https://stackoverflow.com/a/15390919/1014822

答案 1 :(得分:0)

因此,对于我的Durandal + Esri + Dojo场景,我不得不遗漏Durandal附带的require.js文件并使用dojo AMD加载程序。不幸的是,我不知道这可能导致的未来问题。  更多信息可以在here

找到