Dart Polymer:当编译成JS时,从DOM中删除元素似乎被破坏了?

时间:2014-04-07 09:31:45

标签: dart dart-polymer

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

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

代码

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

document.body.children.removeLast();

在Dartium中运行正常但在使用“Assertion failed”-Error编译为JS时在Chrome中失败。失败的断言是:assert(node instanceof Node);并置于shadow_dom.debug.js:3364:5中。似乎要删除的节点不是Node的实例吗?

有什么变通方法吗? Dart SDK版本为1.2.0,Chrome版本为32.0.1700.76 m。

1 个答案:

答案 0 :(得分:1)

来自jmesserly的bug:

  

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

document.querySelector('body')
     

不幸的是,从之前的错误提交   https://github.com/polymer/ShadowDOM显然不可能   在polyfill中解决这个问题。

     

唯一有问题的成员是直接访问“文档”和   导航树。一旦你调用一个方法(比如   querySelector),之后的任何东西都可以工作。如果你使用“身体”a   很多,然后尝试:

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