我有一个无法正常工作的自定义窗口小部件。它正在实例化,但不会调用postCreate
函数。我没有收到任何错误消息。
我已从窗口小部件中删除了任何额外的代码以用于测试目的,以下是生成的代码:
define(["dojo/_base/declare",
"dojo/_base/lang",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dijit/_WidgetsInTemplateMixin",
"dojox/mobile/Button",
"dojo/text!pgonline/widgets/AttributeInspector/templates/AttributeInspector.html"],
function(declare,
lang,
_WidgetBase,
_TemplatedMixin,
_WidgetsInTemplateMixin,
Button,
template) {
return declare("AttributeInspector2", [_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
templateString : template,
baseClass : "AttributeInspector2",
postCreate : function() {
dojo.connect(this, "onBeforeTransitionIn", lang.hitch(this, this.onPageLoad));
},
onPageLoad : function() {
}
});
});
我可以告诉它正在实例化,因为当我在Chrome中调试时,我可以在行上设置一个断点:templateString : template
它将在该断点上停止,但它不会在代码的断点处停止在postCreate
函数内。模板本身是一个简单的HTML文件,其中包含多个div
和一个dojox.mobile.button
。
更新
这是实例化代码:
require(["pgonline/widgets/AttributeInspector2"], function(AttributeInspector) {
var att = new AttributeInspector({});
att.placeAt("attributeInspector");
att.startup();
});
答案 0 :(得分:2)
这可能不合适,但根据您的fiddle,控制台中的错误为Uncaught Error: Invalid template
您的模板如下所示:
<div>
<button data-dojo-attach-point='prevButton' data-dojo-type='dojox.mobile.Button'></button>
<button data-dojo-attach-point='nextButton'></button>
</div>
<div data-dojo-attach-point='attributes'></div>
Dijit要求模板具有单个根节点 - 所以作为修复,只需将包含div添加到模板
<div>
<div>
<button data-dojo-attach-point='prevButton' data-dojo-type='dojox.mobile.Button'></button>
<button data-dojo-attach-point='nextButton'></button>
</div>
<div data-dojo-attach-point='attributes'></div>
</div>