javascript - 同一模板中可以有重复的 dojo-data-attach-points 吗?

标签 javascript dojo

我创建了一个模板化小部件,并且模板中有两个位置我想在运行时使用相同的值进行更新。类似于:

<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'top'">
  Site: <span data-dojo-attach-point="siteNameNode">Placeholder</span>
</div>

...

<div data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'bottom'">
  Site: <span data-dojo-attach-point="siteNameNode">Placeholder</span>
</div>

在我的 Javascript 中,我有:

_setSiteNameAttr: { node: "siteNameNode", type: "innerHTML" },
...
this.set("siteName", "Your Site Name");

当代码运行时,仅更新第二个 siteNameNode。这是否意味着附加点在模板中必须是唯一的,或者是否有不同的方法来处理重复项?如果不允许重复,是否有一种通用方法可以一次更新多个值,或者我是否需要为节点提供不同的附加点名称?

谢谢。我正在使用 Dojo 1.8.3。

最佳答案

附加点是对 DOM 节点的引用。如果您尝试将两个 DOM 节点连接到同一个附加点,我认为这不会成功,因为您有两个不同的 DOM 节点(这就是为什么只有最后一个节点被存储为附加点)。

但是为什么不将节点的内容设置为与下面的示例中相同的值呢?只需将第二个连接点重命名为 siteNameNode2 即可。

html.set(this.siteNameNode, "Your Site Name");
html.set(this.siteNameNode2, "Your Site Name");

我使用 dojo/html 模块将两个 DOM 节点的内部 HTML 设置为相同的内容,但您也可以执行以下操作:

this.siteNameNode.innerHTML = "Your Site Name";

附加点的 DOM 节点在小部件中存储为同名属性,因此很容易访问/修改。

关于javascript - 同一模板中可以有重复的 dojo-data-attach-points 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15487957/

相关文章:

javascript - JQuery 选择器包含括号

javascript - 在javascript中获取angular ng-model值

javascript - 从 AngularJS 获取已编译的 HTML

javascript - JSON 无效字符语法错误 - Dojo

javascript - Column Plugins(tree) 捕获dojo中的点击事件

javascript - 在 dijit.Menu 上设置最大高度

javascript - 单击时淡入菜单

javascript - 如何从后面的代码关闭 Bootstrap 模式?

javascript - 无法在 Safari 中选择文本

javascript - jQuery addOption 和 selectOptions