2013-01-01 29 views
0

我們在我們的應用程序中使用dojo/parser來解析由我們的服務器端模板語言使用dojo-data-type屬性生成的html。使用Dojo解析器查找模塊的子節點

我們需要做的一件事是訪問一個節點,它是模塊的domNode的一部分,用於處理某些事情。我們提出了一種獨特的id方法來識別我們想要的節點,但由於各種原因,我感到不安。

_templated mixin允許您在連接到對象實例的模板中定義「連接點」。類似這樣的解析器是否存在,所以節點可以通過模塊代碼輕鬆識別?

如果不是,解析模塊的domNode以找到這些重要的子節點,特別是避免屬於另一個(子)模塊的domNode的子節點的最好方法是什麼?

+0

您是否在談論dijits?您可能想參考[註冊表](http://dojotoolkit.org/reference-guide/1.8/dijit/registry.html),並通過dijit自己的方法操作UI控件。 – McDowell

+0

這是一個dijits和非dijits的混合 –

回答

1

不,解析器不支持附加點。這是一個Dijit模板的東西。

使用ID將起作用,但存在重複ID的風險,事情將會中斷。我建議使用classNames並使用dojo.query查找節點。

如果可附加項目是其他Dijits,則可以使用widget.getChildren()訪問它們。

如果你沒有使用dojo.parser的所有功能(有很多我不使用),你可以建立自己的。我創建了一個,與Dojo的相比,它非常小巧。請注意,我剛剛創建並且進行了很少的測試,因此僅供參考。 https://github.com/clubajax/dx-ui/blob/master/util/parser.js