Javascript AMD使用Dojo 1.7加载小部件

Javascript AMD使用Dojo 1.7加载小部件,javascript,dojo,Javascript,Dojo,我已经创建了一个小部件,我想在Dojo1.7中通过AMD加载它。我希望能够将我的自定义小部件库放置在与dojo文件夹相同的级别上 看起来它总是使用dojo的基本路径,因此需要将小部件放在dojo文件夹中,但是dojo附带的lib不需要遵循该规则,例如dijit和dojox 我尝试过改变基本路径和 <script> dojoConfig = { isDebug: true, parseOnLoad: true, async:tru

我已经创建了一个小部件,我想在Dojo1.7中通过AMD加载它。我希望能够将我的自定义小部件库放置在与dojo文件夹相同的级别上

看起来它总是使用dojo的基本路径,因此需要将小部件放在dojo文件夹中,但是dojo附带的lib不需要遵循该规则,例如dijit和dojox

我尝试过改变基本路径和

<script>
    dojoConfig = {
        isDebug: true,
        parseOnLoad: true,
        async:true
        //,baseUrl: '../src/js'
    };
</script>

<script type="text/javascript" src="js/dojo/dojo.js"></script>

<script type="text/javascript">
    console.log('start1');
    require(
        ["dojo/ready"
         ,"dijit/Tree"
         ,"screeningResults/ScreeningResults"
        ],
        function(ready,tree, screening){
            var screeningUI = new screening({}, "screeningUI");
            screeningUI.startup();
        }
    );
</script>

dojoConfig={
是的,
parseOnLoad:true,
异步:true
//,baseUrl:“../src/js”
};
console.log('start1');
要求(
[“dojo/ready”
,“dijit/Tree”
,“屏幕输入结果/屏幕输入结果”
],
功能(就绪、树、筛选){
var screeningUI=新筛选({},“screeningUI”);
screeningUI.startup();
}
);

假设您的目录结构如下:

  • 道场/迪吉特
  • dojo/dojox
  • 道场
  • src/js/mymodule
你应该做:

<script>
    dojoConfig = {
        isDebug: true,
        parseOnLoad: true,
        async:true
        packages : [{name : 'mymodule', location : '/src/js/mymodule'}]
    };
</script>

dojoConfig={
是的,
parseOnLoad:true,
异步:true
包:[{name:'mymodule',位置:'/src/js/mymodule'}]
};

结果表明,您需要使用“aliases”参数并在另一个数组中传入一个别名数组。你需要向我们展示你的目录是如何组织的。在1.7 amd中,你需要使用“别名”路径。正如Ken所指出的那样,实际上我尝试并设法通过使用软件包使其工作。。。我相应地更新了答案。
别名通常不适合这份工作;它旨在重新映射各个模块ID。建议使用的属性是
软件包
。看见