【发布时间】:2013-07-29 11:00:47
【问题描述】:
我对 Web 组件的自动生成代码有疑问。 这是一段 HTML:
<div id="hidden-ui">
<div id="auth-form" class="...">
...
<to-button></to-button>
</div>
...
</div>
如您所见,有一个名为to-button 的自定义Web 组件:
<element name="to-button" constructor="TOSimpleButton" extends="div">
...
</element>
在启动时我想将#auth-form 从父节点外部移动到文档根目录:
Element af = document.query('#auth-form');
Element db = document.query('BODY');
db.children.add(af);
如果可移动节点内没有自定义 Web 组件也没关系,但是当 to-button 在里面时,我得到运行时 RangeError。
这是一段自动生成的代码:
__e1 = __root.nodes[9].nodes[1].nodes[7];
__t.component(new TOSimpleButton()..host = __e1);
如您所见,组件有严格的旧路径,因此引发 RangeError 异常。
我该如何处理?
【问题讨论】:
-
为什么需要移动身份验证表单?为什么一开始就不能把它放在合适的 DOM 位置呢?
-
@PixelElephant,这个想法是隐藏包含所有 UI 元素(正式弹出表单)的 DIV,这可能有用或没有用,因此当我需要显示身份验证表单时,我将其移动到文档根目录,当我需要隐藏它时——只需将其移回隐藏的 div 中。我同意,我可以使用另一种方法,而且我已经使用了另一种方法,但我认为这是一个合理的问题,不是吗?
-
好的,我只是在您的特定情况下没有看到需要,但我同意这在其他情况下可能是一个问题。
标签: dom dart dart-webui