我们在应用程序上使用dojo / parser来解析使用dojo-data-type属性的服务器端模板语言生成的html。
我们需要做的一件事是访问一个节点,该节点是模块的一部分' domNode用来做某事。我们已经为我们想要的节点提供了一种独特的id方法,但由于各种原因让我感到不安。
_templated mixin允许您定义' attach-points'在附加到对象实例的模板中。对于解析器是否存在这样的事情,因此模块代码可以轻松识别节点?
如果没有,那么解析模块的domNode以找到这些重要子节点的最佳方法是什么,特别是避免属于另一个(子)模块的domNode的子节点?
答案 0 :(得分:1)
不,解析器不支持附加点。这是Dijit模板的事情。
使用ID会有效,但是存在重复ID的风险,事情就会中断。我建议使用classNames并使用dojo.query查找节点。
如果可附加项目是其他Dijits,您可以使用widget.getChildren();
访问它们如果你没有使用dojo.parser的所有功能(有很多我不使用的话),你可以建立自己的。我建了一个,令人震惊的是它与Dojo相比有多么微小。请注意,我的刚刚创建并且几乎没有测试,所以这仅供参考。 https://github.com/clubajax/dx-ui/blob/master/util/parser.js