2013-01-01 28 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