我正在尝试在我的 Worklight 6.0 应用程序中使用 dojo 1.9 创建一个简单的小部件,但我遇到了很多问题,我已经为它搞砸了太久,我可能错过了一些非常简单的东西。
在这里您可以找到我的 Worklight 应用程序的结构:
我创建了包含我的 javascript 文件(小部件等)的子文件夹。
这是我的主要 HTML 文件:http: //jsfiddle.net/d8K69/ 最重要的是:
var dojoConfig = { isDebug:是的, 异步:是的, 解析加载:真, mblHideAddressBar:假, 包:[{ “名称”:“游乐场”, “位置”:“js/游乐场” }] };
<div id="header" data-dojo-type="playground.HeaderWidget"></div>
自定义 Widget 代码可以在这里找到:http: //jsfiddle.net/T9Tfq/2/
define([ "dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dojo/text!js/playground/widgets/header/HeaderWidget.html" ],
function(declare, _WidgetBase, _TemplatedMixin, template) {
WL.Logger.debug("HeaderWidget.js: init.");
return declare("playground.HeaderWidget", null, [_WidgetBase, _TemplatedMixin], {
headerTitle: "Default header title",
templateString: template,
postCreate: function() {
// Get a DOM node reference for the root of our widget
//var domNode = this.domNode;
baseClass: "headerWidget";
// Run any parent postCreate processes - can be done at any point
this.inherited(arguments);
this.headerTitle.style.color = "red";
}
});
});
我对定义中的模块名称、dojoConfig 中的包以及在其他 javascript 文件中包含 (require) 的模块名称如何完全一起玩感到有点困惑。目前我收到此错误:
dojo/parser::parse() error
Error: Unable to resolve constructor for: 'playground.HeaderWidget'
在另一个 javascript 文件中尝试此操作时:
require([ "js/playground/widgets/header/HeaderWidget"], function(HeaderWidget) {
WL.Logger.debug("DOING SOMETHING WITH MY WIDGET");
似乎可以工作(尽管我实际上还没有以编程方式创建 headerwidget,但这似乎没有成功。