将Dojo与Tapestry 5.4结合使用
我计划在Tapestry 5.4中使用Dojo工具包。我从tapestry快速启动项目开始,并尝试包括dojo。然而,我一直面临着许多新的需要机制的问题。 -未知类型错误-require不是函数 -无法加载dojo模块 webapp目录结构将Dojo与Tapestry 5.4结合使用,dojo,requirejs,tapestry,Dojo,Requirejs,Tapestry,我计划在Tapestry 5.4中使用Dojo工具包。我从tapestry快速启动项目开始,并尝试包括dojo。然而,我一直面临着许多新的需要机制的问题。 -未知类型错误-require不是函数 -无法加载dojo模块 webapp目录结构 webapp +------- mybootstrap +----------- js (part of tapestry quick start project) +------- js (js folder
webapp
+------- mybootstrap
+----------- js (part of tapestry quick start project)
+------- js (js folder I added for Dojo)
+----------- dojo (All dojo files here)
将它与Tapestry 5.3一起使用非常简单——包括布局组件中的dojo.js文件。同样的事情在5.4中不起作用
我尝试过使用requirejs数据主属性,但仍然坚持使用它
任何帮助都将不胜感激。将所有dojo文件放在webapp\js文件夹中 你的文件夹结构应该是
// Folder structure
-webapp
-js
-dojo
-digit
-dojox
注意:确保您提供了对js/*路径的访问权限。所以url:可访问
在tapestry页面(*.tml)中放置一个脚本标记,并使用下面的脚本使用requireJS添加dojo模块
<script type="text/javascript">
setTimeout(
function() {
var dojoConfig = {
async : true
};
require.config({
packages :
[ {
name : 'dojo',
location : '../js/dojo'
} ],
});
require(
[ 'dojo', 'dojo/dom' ],
function(dojo, dom) {
console.log(dojo);
dom.byId("myDiv").innerHTML = "updatedHTML content";
});
}, 1000);
</script>
设置超时(
函数(){
var dojoConfig={
异步:true
};
require.config({
包装:
[ {
名称:“dojo”,
位置:“../js/dojo”
} ],
});
要求(
['dojo','dojo/dom'],
函数(dojo、dom){
console.log(dojo);
dom.byId(“myDiv”).innerHTML=“updatedHTML内容”;
});
}, 1000);
就这样。你找到解决办法了吗?我在Tapestry Jar中看到一个JavaScriptModule,其中包括require.js和其他依赖项。无论如何,它需要被绕过。似乎有一个项目[试图使用Dojo Toolkit作为Tapestry 5.4的基础架构提供商],可能会有所帮助。