dojo需要自定义函数版本2

dojo需要自定义函数版本2,dojo,amd,Dojo,Amd,我有一个问题,需要我自己的自定义函数。 在我的test.html中,我写道: require(["dojo/query", "new"], function(query, New) {New();}); New是New.js文件,它与dojo文件夹位于同一位置。 在new.js中,我写道: define(["dojo/dom"], function(dom){return dom.byId("d1")}); 在这种情况下,我可以在需要时调用我的新函数 但是如果我改变new.js的位置,那么当

我有一个问题,需要我自己的自定义函数。 在我的test.html中,我写道:

require(["dojo/query", "new"], function(query, New) {New();});
New是New.js文件,它与dojo文件夹位于同一位置。 在new.js中,我写道:

define(["dojo/dom"], function(dom){return dom.byId("d1")});
在这种情况下,我可以在需要时调用我的新函数

但是如果我改变new.js的位置,那么当我再次需要新的, 出现dojo加载程序错误

如果我更改new.js的位置,对于test.html,我应该如何编写它?比如:

require(["dojo/query", "../new"], function(query, New) {...});
这不起作用

有人知道如何要求自定义js文件,该文件与dojo文件夹不在同一位置吗


谢谢…

我已经解决了这样的问题

首先,我将dojo包括在我的文档中,如下所示:

<script type="text/javascript"
src="https://myserver.com/dojo/1.7.2/dojo/dojo.js"></script>
require([ "dojo", "dijit/Dialog", "dojo/parser", "dojo/_base/lang",
  "dojo/query", "dojo/dom-class", "js/MyGrid.js", "js/MyUploader.js",
  "dijit/form/TextBox", "dijit/form/Textarea", "js/MyJsonHelper.js",
  "dijit/form/SimpleTextarea", "dojox/form/BusyButton", "dojo/dom-attr",
  "dijit/form/Select", "dijit/ProgressBar", "js/MyArray.js", 
  "dojo/domReady!" ], 
  function(dojo, Dialog, parser, lang, query, domClass) {
var dojoConfig = {
    packages: [
        { name: "my", location: "js", main: "app" }
    ]
};
附言:我绝不主张这是一种最佳实践。这对我有用。我知道还有其他方法可以做到这一点,比如像这样设置你的电脑:

<script type="text/javascript"
src="https://myserver.com/dojo/1.7.2/dojo/dojo.js"></script>
require([ "dojo", "dijit/Dialog", "dojo/parser", "dojo/_base/lang",
  "dojo/query", "dojo/dom-class", "js/MyGrid.js", "js/MyUploader.js",
  "dijit/form/TextBox", "dijit/form/Textarea", "js/MyJsonHelper.js",
  "dijit/form/SimpleTextarea", "dojox/form/BusyButton", "dojo/dom-attr",
  "dijit/form/Select", "dijit/ProgressBar", "js/MyArray.js", 
  "dojo/domReady!" ], 
  function(dojo, Dialog, parser, lang, query, domClass) {
var dojoConfig = {
    packages: [
        { name: "my", location: "js", main: "app" }
    ]
};

你应该编辑你的旧问题,而不是创建一个稍微修改的新问题。既然已经创建了,我想您可以删除旧问题。好的,我已经删除了旧问题。@throwanerror,我喜欢您的屏幕名。XDError:timeout src:dojoLoader info:Object{../path/to/my/folder/new.js=1}文件名:dojo.jsI试图更改define[../dojo/dom],它也不起作用。我想我应该使用path指向dom.js。我阅读了js的源代码,因为依赖关系,我真的需要更改路径。对我来说,唯一的解决办法是我必须把myModulenew.js放在dojo根文件夹的文件夹中,如果我把它放在其他地方,与dojo没有关系,那么它就不起作用了。更改路径无效。为什么会这样?@throwanerror您是否定义了一个dojoConfig,就像Jessemon的例子一样?您应该将javascript文件放在一个文件夹中,例如throwanerror/somefile.js,然后在packages数组中定义throwanerror的位置。另外,由于您将模块称为new,所以请确保它与javascript的new关键字不冲突。希望它现在更清楚@throwanerror。对于dojo,只需像平常一样包含。它与您在中看到的所有示例和教程相同。对于您自己的模块,您可以使用从js/开始的路径,并且不要忘记包含.js文件扩展名。