gpt4 book ai didi

javascript - dojo自定义小部件不会调用postCreate

转载 作者:行者123 更新时间:2023-12-02 18:49:49 24 4
gpt4 key购买 nike

我有一个自定义小部件无法正常工作。它正在被实例化,但不会调用 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();

});

最佳答案

这可能有偏差,但基于您的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>

关于javascript - dojo自定义小部件不会调用postCreate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15952518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com