- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我创建了一个名为“Dialog”的模板化基本小部件,我想将其用作包中所有其他小部件的核心布局小部件。这是一个带有几个连接点的简单容器。 (我没有包含 HTML,因为它非常简单)
define("my/Dialog",[
"dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dijit/_WidgetsInTemplateMixin",
"dojo/ready",
"dojo/parser",
"dojo/text!./Dialog.html"], function(declare, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, ready, parser, template){
return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
templateString: template,
widgetsInTemplate: true,
title: 'Dialog',
content: null,
constructor: function(args){
},
postCreate: function(){
this.inherited(arguments);
},
///
/// Getters / Setters
///
_setTitleAttr: function(title){
},
_setContentAttr: function(content){
this._contentPane.innerHTML = content;
}
});
ready(function(){
parser.parse();
});});
然后我想创建另一个 templated 对话框,它将继承这个对话框,并且基本上会根据将模板注入(inject)到 my/的内容中来扩展它对话框
define("my/BookmarksDialog",[
"dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dijit/_WidgetsInTemplateMixin",
"dojo/ready",
"dojo/parser",
"my/Dialog"], function(declare, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, ready, parser, Dialog){
return declare([Dialog, _WidgetsInTemplateMixin], {
//templateString: template,
template: '<div data-dojo-attach-point="bookmarkpoint">something</div>',
widgetsInTemplate: true,
content: template, // This works but doesn't parse the widgets within
title: 'Bookmarks',
constructor: function(args){
},
postCreate: function(){
this.inherited(arguments);
}
});
ready(function(){
parser.parse();
});});
我面临的问题是 BookmarkDialog 无法访问名为 bookmarkpoint 的附加点
所以问题是:如何让 BookmarkDialog 模板得到解析并放置在对话框小部件中?
选项:
请注意,我还在实例化小部件时触发了 .startup()。谢谢
最佳答案
使用专为此目的设计的buildRendering 方法。在此方法中,您可以解析 templateString 属性,修改它,然后重新分配它。
buildRendering: function () {
// Parse template string into xml document using "dojox/xml/parser"
var xml = xmlParser.parse(this.templateString);
var xmlDoc = xml.documentElement;
// Find target node which should be modified
var targetNode = query("div[data-dojo-attach-point='targetNode']", xmlDoc)[0];
// Create new template content using createElement, createAttribute,
// setAttributeNode
var newNode = xml.createElement("button");
// Append content to the xml template
targetNode.appendChild(newNode);
// Re-set the modified template string
this.templateString = xmlParser.innerXML(xmlDoc);
this.inherited(arguments);
}
关于javascript - 道场 : Inheriting/Extending templated widgets : How to?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17266438/
我正在使用 dojo 版本 1.9.1 并尝试从它们所在的其他域访问我创建的小部件。我得到了 "No 'Access-Control-Allow-Origin' header is present o
不久前,我研究了在使用 Dojo 和 Dojo 主题时出现“无样式内容闪烁”的解决方案。有人建议通过创建构建来组合所有内容,这将减少加载/解析时间并消除使用预加载器覆盖等的需要。 然而,Dojo 的许
我有一个表单,其中使用声明性语法来实例化小部件。 require(["dojo/parser", "dijit/form/Form", "dijit/form/Button",
我有一个搜索功能,大约需要 10 秒才能运行完数据库。有没有办法在dojo中显示搜索状态,以便用户知道搜索实际上正在执行? 澄清 在显示结果的窗口中寻找显示带有百分比的进度条、旋转的圆圈或只是简单的搜
我使用道场。 dojo.ready(function () var input = dojo.query(".dojo_input"); //i have about 5 elements
有没有办法观察鼠标单击事件并确定单击了哪个小部件? 所以基本上我希望我能做这样的事情(鼠标单击页面上的任意位置) on("click", function (e) { //var aWidget
我创建了这个 NumberSpinner 小部件: 当我加载页面时,小部件按预期显示。但是,有几个问题: 该值为空,而不是 2010。 当我按下空小部件上的减少按钮时,我得到 90000000000
我如何着手克隆一个 Dojo 表单 (dijit.form.Form) 及其子窗口小部件?理想情况下,我也想更改克隆小部件的 ID。我也有兴趣克隆可能附加到小部件的任何事件。 我玩了一下 dojo.c
我有一个使用 dojo 1.5 的表单设置。我正在使用 dijit.form.ComboBox 和 dijit.form.TextBox Combobox 有像“car”、“bike”、“motorc
var testObj = this.getView(); 在我实际尝试调用 callableFunction() 之前,如果 testObj 具有 callableFunction 并且如果不存在则
我最近开始使用 Dojo 框架,并且必须为网站制作 float Pane 。在谷歌和 stackoverflow 上搜索后,我发现了一个很好的例子: jsfiddle 但问题是,每次我最小化 floa
我正在使用一些自定义的 Dojo 小部件,但一直感觉我是众所周知的柔术 Actor ,通过在他们的头上伸手两次来抓耳。由于某种原因,我对 dojo.hitch() 的使用感觉不正确。 这是有效的: m
是否可以使用dojo工具包的dnd api更改头像的位置?此时,拖动时,被拖动项目的头像出现在鼠标光标的右侧和下方。我希望它与鼠标光标位于同一位置。我对我的应用程序进行了一些可用性测试,大多数人似乎尝
我无法让 ValidationTextBox 失去焦点,我也看不到 blur() 方法。 如何让它失去焦点? 最佳答案 blur() 方法适用于 dom 节点。小部件通常由 html 模板支持。如果您
我正在处理一个使用 dojo datagrid 和 JsonRestStore 的旧代码库,使用声明性方法(在 HTML 中)。我现在正在尝试对其进行调整以使用更新的 dojo.store.JsonR
我正在编写一个使用 dojo Toolkit 的 JavaScript 应用程序。我在 dojo 文件夹中创建了一个名为“md”(我的 Dojo)的文件夹。 myownclass.js 和 myCom
我是 Dojo 的新手,所以我需要一些帮助。 我的一些链接需要一段时间(当用户点击时,页面开始加载需要几秒钟),我想添加一个“正在加载”消息。 我可以用“老式方式”来做,但我想学习新的、更简单、更智能
我有一个使用 Python Django 和 Dojo 框架的网络应用程序。我想从 Dojo(使用 dojo/request)向服务器 Django 发送 PUT 请求,但是当服务器收到请求时,其中的
Please ref : http://jsfiddle.net/n23F3/ 我想知道如何在 Accordion 标题(红色标签)上实现打开和关闭。 现在第一个选项卡仅在单击第二个选项卡后关闭。我想
我不确定这是我以前从未遇到过的一些 css 问题,还是在 dojo 1.5 中使用新的 claro 主题时出现的问题。但是现在,CSS 所说的 100% 大小不包括我的 BorderContainer
我是一名优秀的程序员,十分优秀!