使用Dojo与Tapestry 5.4

时间:2015-11-20 13:21:38

标签: dojo requirejs tapestry

我打算在Tapestry 5.4中使用Dojo工具包。我开始使用tapestry quickstart项目并试图包含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 data-main属性,但仍坚持使用它。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

将所有dojo文件放在webapp \ js文件夹中。

您的文件夹结构应该像

UITextView *textInputMultiline = [[UITextView alloc] initWithFrame:frame];

//alloc textInputToolbar (textInputToolbar.retaincount = 1)
TextInputToolbar *textInputToolbar = [TextInputToolbar alloc];
textInputToolbar.textView = textInputMultiline;

if ((self.appDelegate.isTablet)&&([[[UIDevice currentDevice] systemVersion] compare:@"9.0"] != NSOrderedAscending)) {
    NSMutableArray *barButtonItems = [NSMutableArray array];
    //add button items....
    UIBarButtonItem *representativeItem = nil;

    //alloc UIBarButtonItemGroup (group.retaincount = 1)
    UIBarButtonItemGroup *group = [[UIBarButtonItemGroup alloc] initWithBarButtonItems:barButtonItems representativeItem:representativeItem];

    //strong reference group (group.retaincount = 2)
    textInputMultiline.inputAssistantItem.trailingBarButtonGroups = [NSArray arrayWithObject:group];
    //autorelease group 

} else {
    //strong reference textInputToolbar.view (textInputToolbar.view.retaincount = 2)
    textInputMultiline.inputAccessoryView = textInputToolbar.view;
}

//autorelease textInputToolbar (textInputToolbar.retaincount = 0, textInputToolbar.view.retaincount = 1)

注意:确保您提供对js / *路径的访问权限。所以网址:http://localhost:8080/app/js/dojo/dojo.js可以访问。

在您的tapestry页面(* .tml)中放置一个脚本标记,并使用requireJS使用以下脚本添加dojo模块,

// Folder structure
-webapp
    -js
        -dojo
        -digit
        -dojox

就是这样。