将Dojo与Tapestry 5.4结合使用

将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

我计划在Tapestry 5.4中使用Dojo工具包。我从tapestry快速启动项目开始,并尝试包括dojo。然而,我一直面临着许多新的需要机制的问题。 -未知类型错误-require不是函数 -无法加载dojo模块

webapp目录结构

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的基础架构提供商],可能会有所帮助。