DOJO自定义对话框-不解析模板文件
DOJO Custom Dialog Box - does not parse template file
我是DOJO的新手。我有一个自定义小部件,它使用对话框内容的模板文件。我正在延长dijit。对话框。
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.cainerNode给了我"HTMLDIVElement"(父dijit对话框DIV)。
经过多次尝试错误,我无法确定问题的确切位置。如有任何帮助,我们将不胜感激。
调用代码
function opnPop(){
var pop= dijit.byId("customPopup");
pop.show();
}
<div dojoType="custom.credentials" id="customPopup"/>
注意:*当dijit时。对话框是而不是扩展的*它读取模板文件没有任何问题,也就是说,我可以访问this.mainDIV.innerHTML,它包含我自己的内部html内容。
谢谢。
如果Dialog必须是子类,那么它必须是基类。在这里,它似乎被用作mixin。无论如何,问题出在所使用的模板上。对话框中的代码将解析并使用该模板。因此,这里提到的模板只有一个带有附加点的div元素。没有"containerNode"元素(即附加点),您正试图在js代码中访问它,这将导致错误。
更重要的是,"标题栏"&"titleNode"元素也缺少表单模板,这将在分析模板时出错。为了避免这种情况,需要从js中删除使用这些元素的代码部分,以避免出现错误。因此,小部件的创建将是成功的。试试标准的dijit。对话框的模板。将data-dojo-attach-point="mainDIV"
添加到模板中的顶级Dialog的div中。在模板中,可以添加更多的东西,这不会引起任何问题。但是,如果删除任何内容,都会造成问题。如果我们要对类/小部件进行子类化,我们需要遵守现有的代码。
- SuiteScript2.0-包括一个自定义文件
- Rails资产管道-自定义js文件
- 如何在ExtJs4应用程序上为视图、存储和模型设置自定义文件夹名称
- 扩展 ACE 编辑器,如何导入自定义文件
- 使用drupal中自定义javascript文件中的一个函数
- Javascript/webpack:如何用自定义的文件循环连接目录中的所有json文件
- Alfresco JavaScript,当文件上传到网站时,设置自定义类型属性
- 如何使用ngModel将自定义控件的提供程序扩展器分离到Angular 2中的单独文件中
- 在每次文件上传时发送带有放置区的自定义数据.js
- 为什么自定义 JavaScript 文件放在客户端文件夹中时不在我的 Meteor 模板上呈现
- 带有自定义进度条的 JQuery 文件上传 (blueimp)
- 为什么PHP文件不用于(自定义)CSS和JS
- 使用 gruntjs 自定义初始化任务重命名模板文件夹
- 如何在单独的文件中使用自定义Vtype,以便在EXT.JS中全局使用它们
- 如何通过环境自定义Node.js中的公共js文件
- Wordpress:添加自定义HTML文件
- 如何调用另一个js文件中的函数或触发一个自定义事件,该事件将参数作为Jquery中的数据对象传递
- DOJO自定义对话框-不解析模板文件
- 正在新文件中创建自定义任务
- 用户配置文件自定义 css