id和数据dojo id之间的差异
dojo标记中的id和数据dojo id之间有什么区别,例如:id和数据dojo id之间的差异,dojo,Dojo,dojo标记中的id和数据dojo id之间有什么区别,例如: <button id="save" data-dojo-type="dijit/form/Button" type="button" data-dojo-attach-event="onClick:save">Save</button> 保存 我尝试引用此按钮以更改其标签: var myButton=dijit.byId(“保存”); 这样我就可以更改按钮标签了 myButton.set(“标签”、“添加
<button id="save" data-dojo-type="dijit/form/Button" type="button" data-dojo-attach-event="onClick:save">Save</button>
保存
我尝试引用此按钮以更改其标签:
var myButton=dijit.byId(“保存”);
这样我就可以更改按钮标签了
myButton.set(“标签”、“添加新”)
如果我使用id=“save”,它可以工作。如果我只使用数据dojo id=“save”,它将不起作用
我对Dojo还比较陌生,所以如果您能给我一个解释或指导,我将不胜感激
数据dojo id
将小部件分配到全局名称空间,即分配到窗口
对象:
<button data-dojo-id="save" data-dojo-type="dijit/form/Button">Save</button>
请参见JSFIDLE的操作差异:
编辑:回答您的问题。我根本不使用数据dojo id
。它污染了全局名称空间,这与AMD的做法正好相反。无论如何,您仍然可以使用类似于小部件的东西。保存和小部件。重命名以最大限度地减少污染:
<button data-dojo-id="widgets.save" data-dojo-type="dijit/form/Button">Save</button>
<button data-dojo-id="widgets.rename" data-dojo-type="dijit/form/Button">Rename</button>
我把整个班级都放在这里:。我使用这个app.ui.\u Pane
而不是dijit/layout/ContentPane
谢谢!仅使用id属性需要使用byId方法来获取DOM挂钩。现在,我想知道在创建多个实例的Dojo模块中使用哪个更好。data dojo id是否负责对其进行内部管理,以避免将一个实例标识与另一个实例标识混淆?
<button data-dojo-id="widgets.save" data-dojo-type="dijit/form/Button">Save</button>
<button data-dojo-id="widgets.rename" data-dojo-type="dijit/form/Button">Rename</button>
_attachTemplateWidgets: function(widgets) {
widgets = widgets || this.getChildren();
for(var each = 0; each < widgets.length; each++) {
var widget = widgets[each];
var attachPoint = widget.params.dojoAttachPoint;
if(attachPoint) {
this.widget[attachPoint] = widget;
}
var children = widget.getChildren();
if(children.length > 0) {
this._attachTemplateWidgets(children);
}
}
}