0

我们在我们的应用程序上使用 dojo/parser 来解析由我们的服务器端模板语言使用 dojo-data-type 属性生成的 html。

我们需要做的一件常见事情是访问作为模块 domNode 一部分的节点来做某事。我们提出了一种独特的 id 方法来标识我们想要的节点,但这让我因各种原因感到不安。

_templated mixin 允许您在附加到对象实例的模板中定义“附加点”。解析器是否存在类似的东西,因此可以通过模块代码轻松识别节点?

如果不是,那么解析模块的 domNode 以找到这些重要的子节点的最佳方法是什么,尤其是避免属于另一个(子)模块的 domNode 的子节点?

4

1 回答 1

1

不,解析器不支持附加点。那是 Dijit 模板的东西。

使用 ID 是可行的,但这会冒重复 ID 的风险,并且事情会中断。我建议使用 classNames 并使用 dojo.query 查找您的节点。

如果可附加项是其他 Dijit,您可以使用 widget.getChildren() 访问它们;

如果您没有使用 dojo.parser 的所有功能(有很多我没有使用),您可以构建自己的。我建造了一个,与 Dojo 相比,它是如此之小令人震惊。请注意,我的刚刚创建并进行了很少的测试,因此仅供参考。https://github.com/clubajax/dx-ui/blob/master/util/parser.js

于 2013-01-01T23:25:44.740 回答