Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DOJO自定义对话框-不分析模板文件_Javascript_Html_Widget_Dojo - Fatal编程技术网

Javascript DOJO自定义对话框-不分析模板文件

Javascript 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。我有一个自定义小部件,它使用一个模板文件作为对话框内容。 我正在扩展脚本文件中的dijit.Dialog

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对话框模板,并在其中添加了自定义标记。它成功了!谢谢:)