好的,所以我正在使用Dojo 1.8构建一个应用程序,我有一个自定义小部件,其模板类似于此...
<div>
<label for="tag">Select something: </label>
<select id="tag"
data-dojo-attach-point="tag"
data-dojo-type="dijit/form/Select">
<option value="0">option 0</option>
<option value="1">option 1</option>
</select>
</div>
但是,当渲染模板时,窗口小部件定义了一个新的id,这使得标记无效。我尝试使用谷歌搜索,但我的所有搜索都直接指向Dojo文档,因为它们具有称为标签的属性,但与HTML标签标签无关。
这样做的原因是什么?
答案 0 :(得分:1)
在您描述的情况下,您只需将标签放在&lt; select&gt; 周围,然后使用for / id属性进行处理。请参阅Stackoverflow问题:
此外,如果您想在窗口小部件模板中实际使用ID,请参阅:
不鼓励直接使用ID(即,对它们进行硬编码,而不是像上面链接那样即时分配它们)。这样做的原因是模板意味着在创建小部件时反复使用。
理论上,它可以用于在一个页面上创建多个小部件。因此,在这种情况下,您将遇到ID冲突。
在任何一个页面上的每个HTML ID都必须是唯一的。