2016-05-17 6 views
0

У меня возникли некоторые проблемы при переключении моего приложения из версии 4.0 API 4.0 ArcGIS Javascript в новую версию API Javascript 4.0.Использование API ESRI Javascript 4.0 с требованиями JS

я имел рабочую карту при использовании версии Beta3 в 4.0 JavaScript API и был настроен Требовать JS, чтобы правильно загрузить модули с бета версии 3, как этот

requirejs.config({ 
    baseUrl: "/App/", 
    paths: { 
     "text": "/Scripts/text", 
     "moment": "/Scripts/moment", 
     "durandal": "/Scripts/durandal", 
     "plugins": "/Scripts/durandal/plugins", 
     "transitions": "/Scripts/durandal/transitions", 
     "esri": "//js.arcgis.com/4.0beta3/esri", 
     "dojo": "//js.arcgis.com/4.0beta3/dojo", 
     "dojox": "//js.arcgis.com/4.0beta3/dojox", 
     "dijit": "//js.arcgis.com/4.0beta3/dijit", 
    }, 
}); 

Однако, как только я перейти от 4.0beta3 до всего лишь 4.0

requirejs.config({ 
    baseUrl: "/App/", 
    paths: { 
     "text": "/Scripts/text", 
     "moment": "/Scripts/moment", 
     "durandal": "/Scripts/durandal", 
     "plugins": "/Scripts/durandal/plugins", 
     "transitions": "/Scripts/durandal/transitions", 
     "esri": "//js.arcgis.com/4.0/esri", 
     "dojo": "//js.arcgis.com/4.0/dojo", 
     "dojox": "//js.arcgis.com/4.0/dojox", 
     "dijit": "//js.arcgis.com/4.0/dijit", 
    }, 
}); 

я получаю сообщение об ошибке при попытке загрузить карту, где он пытается загрузить этот сценарий, и это дает 404

http://localhost:17654/Scripts/moment/moment.js 

Я считаю, что он пытается загрузить этот скрипт, потому что ESRI Api использует свой собственный плагин момента и, поскольку я уже определил, в какой момент, его попытка посмотреть на localhost вместо загрузки модуля esri.

Я пробовал несколько различных конфигураций с требуют и с этим я могу получить страницу для загрузки, без яваскрипта ошибок, однако карта не показывает вверх

requirejs.config({ 
    baseUrl: "/App/", 
    paths: { 
     "text": "/Scripts/text", 
     "moment": "/Scripts/moment", 
     "durandal": "/Scripts/durandal", 
     "plugins": "/Scripts/durandal/plugins", 
     "transitions": "/Scripts/durandal/transitions", 
     "esri": "//js.arcgis.com/4.0/esri", 
     "dojo": "//js.arcgis.com/4.0/dojo", 
     "dojox": "//js.arcgis.com/4.0/dojox", 
     "dijit": "//js.arcgis.com/4.0/dijit", 
    }, 
    map: { 
     "*": { 
      "moment/moment": "moment" 
     } 
    } 
}); 

Я знаю, что JavaScript API использует свою собственную версию dojo, который должен обрабатывать загрузку модуля, поэтому смешивание его с помощью js может быть даже невозможным, но поскольку он отлично работает с бета-3, я надеюсь найти способ заставить этот плагин для правильной загрузки и иметь карту работа с использованием js.

Есть ли у кого-нибудь опыт в совместной работе этих двух? Буду признателен за любую оказанную помощь. Спасибо

ответ

2

Он должен иметь возможность работать с requirejs, однако есть ли какая-то конкретная причина, по которой вы используете его вместо загрузчика AMD esri, который сходит с API? Использование их должно сделать вещи в целом более легкими, но вы, вероятно, столкнетесь с теми же проблемами, используя их загрузчик, поскольку esri уже определил пакет/псевдоним для момента. Одна вещь, которую вы можете попробовать, это назвать ее по-разному для ваших путей. Что-то вроде этого:

requirejs.config({ 
    baseUrl: "/App/", 
    paths: { 
    "text": "/Scripts/text", 
    "local-moment": "/Scripts/moment", 
    "durandal": "/Scripts/durandal", 
    "plugins": "/Scripts/durandal/plugins", 
    "transitions": "/Scripts/durandal/transitions", 
    "esri": "//js.arcgis.com/4.0/esri", 
    "dojo": "//js.arcgis.com/4.0/dojo", 
    "dojox": "//js.arcgis.com/4.0/dojox", 
    "dijit": "//js.arcgis.com/4.0/dijit", 
    }, 
}); 

Таким образом ESRI все еще может потребовать их moment и вы могли бы требовать вашего local-moment.

+0

Мы используем JS вместо загрузчика esri AMD, потому что мы используем Durandal как единую платформу приложения, которая зависит от требуемого js вместо dojo. – user501211

+0

Ahh ok cool, хорошо, что у них не должно быть проблем, работающих вместе, пока конфигурация сплошная –

+0

Я обновил конфигурацию до этого, как вы предложили, с одной небольшой настройкой. Я добавил еще один путь «момент/момент»: «//js.arcgis.com/4.0/moment/moment» ' И теперь страница действительно загружается без ошибки moment.js, однако карта больше не отображается вверх. Тот же код, что и раньше, с версией beta3. – user501211

-2

Я думаю, что если у вас будет в папке Scripts/moment/moment.js, все будет хорошо.