我正在研究一些在DOM節點上使用自定義屬性的代碼。這些對於使用的特定邏輯是必需的。自定義屬性被設置在輸入元素,例如下拉列表和文本輸入字段,並格式...將自定義DOM節點屬性傳輸到Dijit窗口小部件
<input type="text" myCustomId="blah"...
這一切工作正常標準的HTML輸入。不過,我們正在尋找使用一些Dijit小部件來代替標準輸入來實現特定外觀的感受。 在onLoad上解析DOM,並加載小部件(我們設置data-dojo-type來指定小部件)。 問題是Dojo/Dijit不保留自定義屬性。他們迷失在解析中。
是否可以指定Dijit小部件應該使用的自定義屬性?
編輯:
下面有一些樣本HTML,突出的問題。 「自定義」屬性正在消失......
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://dojotoolkit.org/reference-guide/1.9/_static/js/dijit/themes/claro/claro.css">
<script>dojoConfig = {parseOnLoad: true}</script>
<script src="http://dojotoolkit.org/reference-guide/1.9/_static/js/dojo/dojo.js"> </script>
<script>require(["dojo/parser", "dijit/form/TextBox"]);</script>
</head>
<body class="claro">
<label for="firstname">Test: </label>
<input type="text" name="firstname" custom="test" value="testing testing"
data-dojo-type="dijit/form/TextBox"
data-dojo-props="trim:true, propercase:true" id="firstname" />
</body>
</html>
相關的代碼在'_WidgetBase'中使用'set'方法,只有以'data- *','aria- *'或'role *得到Dojo開始搞亂widget的主要DOM節點時複製。你可以通過繼承'dijit/form/TextBox'和設置'attributeMap'來做一個解決方法,儘管它可能會在2.0中被破壞。 – Darien
多數民衆贊成澄清Darien。我特別不希望子類化任何小部件,因爲這種方法可能會成爲維護噩夢 – fatlog