Dart Polymer:从DOM中删除元素在编译为JS时似乎被破坏了



我正在尝试从 DOM 中删除一个元素,该元素是通过以下方式添加的:

document.body.children.add(new DivElement()..innerHtml = "Hello World");

代码

document.body.children.remove(document.body.children.last);

document.body.children.removeLast();

在Dartium中工作正常,但在Chrome中编译为JS时失败,并带有"断言失败"错误。失败的断言是:assert(node instanceof Node);,并放置在 shadow_dom.debug.js:3364:5 中。似乎要删除的节点不是节点的实例?

有什么解决方法吗?Dart SDK 版本是 1.2.0,Chrome 版本是 32.0.1700.76 m。

从 jmesserly 关于错误:

啊,这是Shadow DOM的已知限制。请尝试:

document.querySelector('body')

不幸的是,从以前的错误中 https://github.com/polymer/ShadowDOM 显然不可能 在填充文本中修复此问题。

唯一有问题的成员是直接访问"文档"和 导航树。一旦你调用一个方法(如 查询选择器),之后的任何内容都将起作用。如果您使用"body"a 很多,然后尝试:

final body = document.querySelector('body');

最新更新