10
我有一个我正在写的Dojo小部件,它为用户的页面添加了一个标签和一个输入框。如何在Dojo小部件模板中创建唯一ID?
label
的for
属性需要HTML ID值,但Dojo窗口小部件不应包含ID,以防在同一页面上创建多个实例。
那么,有没有人有任何建议如何解决这些冲突的需求?
我有一个我正在写的Dojo小部件,它为用户的页面添加了一个标签和一个输入框。如何在Dojo小部件模板中创建唯一ID?
label
的for
属性需要HTML ID值,但Dojo窗口小部件不应包含ID,以防在同一页面上创建多个实例。
那么,有没有人有任何建议如何解决这些冲突的需求?
开箱即用,这是dijit的注册表设置如何为widgetid(this.id)如果配置参数不存在边建设边:
constructor: function(args) { args=args || {};
this.id = args.id || dijit.registry.getUniqueId(this.declaredClass)
}
模板用字符串替换工作,所以如果你有一个属性在你的类,说FOO,顺便把这个到模板是这样的:
templateString = '<div class="${foo}">';
在你的情况下,如果某个模板你人abel->输入对,它是这样的
<div><!--domNode-->
<table>
<td><label for="${id}-edit-title">Title</label></td>
<td><input id="${id}-edit-title" type="text" /></td>
</table>
</div>
所以
Allthough它是一点点过时的时间之中,这是一个非常良好的开端: http://dojotoolkit.org/documentation/tutorials/1.6/templated/
继续阅读dojo.Stateful
get/set机制
最后转到dijit._WidgetsInTemplateMixin
。
只是一个头:似乎引用模板中的$ {id}是所有需要做的事情。没有任何额外的代码没有任何部件的生命周期方法。 – belzebu
如上所述,'out the box':)第一个代码块是dijit.widget将它设置为id的自动 – mschr