我正在尝试在我的Worklight 6.0应用程序中使用dojo 1.9创建一个简单的小部件,但是我遇到了这样的问题,我一直在为它乱搞太久我可能错过了一些非常简单的事情。未找到自定义dojo小部件的构造函数
在这里,你可以找到我的工作灯的应用程序的结构:
我已经创建了一个包含我的JavaScript文件(小部件等)的子文件夹。
这是我的主HTML文件:http://jsfiddle.net/d8K69/ 最重要的是:
var dojoConfig = { isDebug : true, async : true, parseOnLoad : true, mblHideAddressBar: false, packages : [ { "name" : "playground", "location" : "js/playground" } ] };
<div id="header" data-dojo-type="playground.HeaderWidget"></div>
自定义窗口小部件的代码可以在这里找到: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文件中的(需要)如何精确地一起播放。 目前我得到这个错误:
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 programmaticly然而,这似乎并不成功
与迪米特里·米的短会后,我们发现在我的窗口小部件的一些问题: - 传递给申报确实上面 提到错误的参数 - 在德部件:基类:“headerWidget”;被定义在错误的地方,它应该在postConstruct之外 使用模块标识的Widget似乎没有工作。 –