聚合物querySelector在DartVM上工作,但在编译后不在Chrome中

有一个奇怪的问题。 在我的Dart代码中,屏幕上有一些聚合物成分,其中一个有我从main()调用的方法。

我通过做一个参考

PolyComp poly = querySelector("#idOfPolymer"); poly.flash(); 

这在飞镖完美的作品。 页面加载和PolyComp开始闪烁。 但是,当我通过从Dart IDE运行Build Polymer应用程序在Chrome中运行这个function时,出现一个错误,说无法在null上调用flash()。

我最后只是使用一个事件总线让PolyComp听我的事件,但这是矫枉过正。

我究竟做错了什么? 这发生在最新的Chrome,Firefox和Safari中。

编辑:

我也为JS构build了以下聚合物应用程序,并遇到了同样的问题。 https://github.com/sethladd/dart-polymer-dart-examples/blob/master/web/todo_element/todo.html

适用于DartVM,不适用于Chrome,因为它在空元素上调用方法。

当你从main()方法运行这个代码时,这可能是一个计时问题。 你可以尝试类似的东西

 import "package:polymer/polymer.dart"; main() { initPolymer().run(() { // code here works most of the time Polymer.onReady.then((e) { // some things must wait until onReady callback is called }); }); } 

另请参阅如何在聚合物应用程序中实现主要function