[英]Including dojo/dom library to Spring Roo
Spring Roo中如何包含和使用dojo / dom库。
这个:
<script type="text/javascript">
dojo.require('dojo/dom');
dojo.ready(function remAttr(){
dojo.removeAttr('theId', 'value');
}
);
</script>
结果是:
"NetworkError: 404 Introuvable - http://localhost:8131/suivitrc/resources/dojo/dom.js"
dom.js
Could not load 'dojo/dom'; last tried '../dojo/dom.js'
谁能帮忙吗?
我认为roo中的dojo版本目前小于1.7。 这意味着您可以从代码中删除以下行,因为remoteAttr函数是dojo.js的一部分:
dojo.require('dojo/dom');
参见此处: http : //dojotoolkit.org/reference-guide/1.7/dojo/removeAttr.html
简而言之,通过替换句点(。)可以获取命名空间=>到模块路径的信息-简而言之,您需要用点代替斜杠。 您的要求应该是
dojo.require('dojo.dom'); // blocking call? djConfig.async must be false
由于错误是关于dojo.require指定的路径的,所以这意味着您的dojo.js已找到并已加载(dojo.require并非未定义)-并且doU模块不关心baseUrl。
事实是,您使用旧版加载器插入AMD模块,在1.7+中,require语句的外观与此不同。
// AMD loader form is
function callbackFunctionOnComplete(dojoDom) { }
require([ "dojo/dom" ], callbackFunctionOnComplete); // non-blocking
因此,遵循dojo.require
工作原理,假设我们以字符串形式传递的参数称为'module;
dojo.require = function(module) {
var parts = module.split('.');
var packageName = parts.shift(); // first part is the package name
var id = parts.pop(); // the last bit
var mid = parts.join("/");
var fullpath = // in pseudo
foreach dojoconfig.packages
iff obj.name == packageName
set to obj.location
fullpath += mid + id + '.js'
transport.get(..... fullpath .....)
您需要使用dojo config配置dojo。 我更喜欢这里解释的形式:
而且您需要告诉dojo在哪里可以找到它的东西。 一个例子:
var dojoConfig =
{
baseUrl : "/yourApp/js", // defines the js folder in your webapp
tlmSiblingOfDojo: false,
async: true,
parseOnLoad:true,
packages: [
{ name: "app", location: "app"}, // where it is in the js folder
{ name: "dojo", location: "lib/dojo" }, // where it is in the js folder
{ name: "dijit", location: "lib/dijit" },
{ name: "dojox", location: "lib/dojox" }
]
};
另外,您使用的需求表也已弃用。 参见http://livedocs.dojotoolkit.org/dojo/require
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.