dojo 1.9 config с персонализирани пътеки на пакети

Така че мога да видя, че файлът е зареден правилно от препратката на dojoConfig, но когато се опитам да използвам модула, неговите „недефинирани“ предложения:

Актуализирано: Това ще зареди файла, но когато хвърля променливата в конзола, нищо не излиза. Когато го проверявам, виждам много текст вместо масива от obj, който поставих вътре.

index.html:

<script>
   dojoConfig = {
     tlmSiblingOfDojo: true,
     async: true,
     parseOnLoad: false,
     packages: [
                { name: "main", location: "/components/3.6compact/js/dojo/dojo/main"},
                { name: "jquery", location: "/scripts/libs", main: "jquery"},
                {name: "jam", location: "/scripts/mylibs", main: "lod"}
            ]
        };
    </script>
    <script src="/components/3.6compact/js/dojo/dojo/dojo.js"></script>
    <script src="/scripts/app.js"></script>

lod.js:

define([], function(){
  var lod = [{
    'level': 0,
    'resolution': 156543.033928,
    'scale': 591657527.591555
}, {
    'level': 1,
    'resolution': 78271.5169639999,
    'scale': 295828763.795777
}
 ];
 return lod;
 });

app.js:*

require(['jam'], function(jam){
  console.log(lod);
});

person atlMapper    schedule 19.09.2013    source източник


Отговори (1)


Трудно е да се даде пример за нещо като jsfiddle, където не можем да посочим ресурси по пътя на файла, но мисля, че проблемът е с идентификатора на модула във вашия javascript. Във вашия dojoConfig, свойството location дефинира пътя до директорията, където могат да бъдат разположени модулите в този пакет.

Ако вашият lod модул се намира в /scripts/mylibs/lod.js, тогава ще трябва да изисквате lod/lod:

require(['lod/lod'], function(lod) {
    console.log("lod module:", lod);
});

Ето документацията за dojo config. Бих погледнал раздела „Конфигуриране на товарач“.

Все пак опитах jsfiddle, което може да бъде полезно: http://jsfiddle.net/tupton/ftN6h/

Обърнете внимание на грешките в конзолата:

'lod':

GET http://fiddle.jshell.net/scripts/mylibs/LOD.js 404 (Not Found)

и 'lod/lod':

GET http://fiddle.jshell.net/scripts/mylibs/lod.js 404 (Not Found)

Не съм запознат със свойството "main" на конфигурацията на пакета, но изглежда, че това е, което използва, когато се опитате да изискате цял пакет. Може би опитайте да промените това на "lod", така че да търси ".../lod.js"?

person Thomas Upton    schedule 19.09.2013
comment
изглежда сте на нещо по някаква причина. Не мога да накарам това да работи, моята конфигурация на dojo се зарежда на моята html страница и страницата за изискване се зарежда след dojo, може ли това да е виновникът. Въпросът беше редактиран, за да отрази - person atlMapper; 19.09.2013
comment
Можете да добавите атрибут data-dojo-config към тага на скрипта, който използвате за зареждане на dojo – вижте опциите в моя jsfiddle по-горе – и в този атрибут можете да посочите вашата конфигурация на dojo. Ако все пак искате да го направите както го имате по-горе, уверете се, че dojoConfig е глобален; т.е. без var преди него. - person Thomas Upton; 19.09.2013
comment
Можете ли да добавите някакви конзолни грешки, които получавате към въпроса си? Това вероятно ще помогне за отстраняването на проблема, който имате. - person Thomas Upton; 19.09.2013
comment
нов код актуализира, сега правилно зарежда файла, сега, когато заредя името на файла, нищо не излиза в дневника, мисля, че мога да опитам различно име на променлива, това, което се използва в модула define/custom - person atlMapper; 20.09.2013
comment
require(['jam'], function(jam){ console.log(lod); }); Трябва да бъде console.log(jam), ако искате да регистрирате това, което сте requireредирали. - person Thomas Upton; 20.09.2013
comment
Благодаря Томас, коригирането на пътищата и конфигурацията на пакета беше голямото. Имах някои други части от пакетите, които бомбардираха, което също причиняваше счупване на доджото, така че с това решено, не готвя с газ. Много благодаря! - person atlMapper; 20.09.2013