Javascript DOJO自定义对话框-不分析模板文件
我不熟悉DOJO。我有一个自定义小部件,它使用一个模板文件作为对话框内容。 我正在扩展脚本文件中的dijit.DialogJavascript DOJO自定义对话框-不分析模板文件,javascript,html,widget,dojo,Javascript,Html,Widget,Dojo,我不熟悉DOJO。我有一个自定义小部件,它使用一个模板文件作为对话框内容。 我正在扩展脚本文件中的dijit.Dialog dojo.declare( "custom.credentials", [dijit._WidgetBase, dijit._Templated,dijit._WidgetsInTemplateMixin,**dijit.Dialog**], { templatePath: dojo.moduleUrl("custom", "
dojo.declare(
"custom.credentials",
[dijit._WidgetBase, dijit._Templated,dijit._WidgetsInTemplateMixin,**dijit.Dialog**],
{
templatePath: dojo.moduleUrl("custom", "templates/credentials.html"),
....
....
postCreate: function() {
this.inherited(arguments);
alert(this.containerNode);
alert(this.mainDIV);
},
});
我的模板测试文件如下所示
<div data-dojo-attach-point="mainDIV">
Login Dialog Box template here
</div>
登录对话框模板在这里
出于某种原因,当我在this.mainDIV上发出警报时,我会得到“未定义”。它不读取模板文件。此外,this.containerNode为我提供了“htmldevelment”(父dijit对话框DIV)
经过多次尝试错误后,我无法找出问题的确切位置。任何帮助都将不胜感激
呼叫代码
function opnPop(){
var pop= dijit.byId("customPopup");
pop.show();
}
<div dojoType="custom.credentials" id="customPopup"/>
函数opnPop(){
var pop=dijit.byId(“自定义弹出”);
pop.show();
}
注意:*当dijit.Dialog未扩展时,它读取模板文件时不会出现任何问题,即,我可以访问此.mainDIV.innerHTML,它包含我自己的内部html内容
谢谢。如果对话框必须是子类,那么它必须是基类。在这里,它似乎被用作一种混合物。无论如何,问题在于所使用的模板。 对话框中的代码将解析并使用该模板。因此,这里提到的模板只有一个带有附着点的div元素。没有“containerNode”元素(即附加点),您试图在js代码中访问它,这将导致错误 更重要的是,“标题栏”&“标题节点”元素也缺少表单模板,这将在解析模板时出错。为了避免这种情况,需要从js中删除使用这些元素的代码部分,以避免错误。因此,小部件的创建将是成功的。尝试使用标准dijit.Dialog的模板。 将数据dojo attach point=“mainDIV”添加到模板中顶层对话框的div中。
在模板中,可以添加更多内容,这不会导致任何问题。但是,如果删除任何内容,都会导致问题。如果我们对一个类/小部件进行子分类,我们需要遵守现有的代码 你好,维韦克。我复制粘贴了dijit对话框模板,并在其中添加了自定义标记。它成功了!谢谢:)