我有两个共享同一dart文件的聚合物元素。在dart文件中,我声明了两个PolymerElement类。
在聚合物0.15.0+1之前,它一直工作良好。我已经将项目更新为聚合物0.15.1,现在我得到了这个例外:
Exception: Already registered (Polymer) prototype for element x
其中x是第一种聚合物。
我认为聚合物转换器尝试注册它两次,第一次扫描x聚合物html文件,第二次扫描其他元素html文件。
dart中存在一个问题:https://code.google.com/p/dart/issues/detail?id=21332
我不知道Dart之类的东西,但我的控制台中也有同样的错误消息。事实证明,我的元素声明中仍然有noscript
属性,如果您想手动注册元素,这是错误的。从元素声明中删除noscript
解决了问题。
随着聚合物飞镖0.15.1+2的发布,问题已经"解决"。
编译器现在发出警告,正如问题评论中所说:"对你来说,真正的解决方案应该是把你的脚本文件放在自己的html文件中,并导入它而不是你的脚本。总之,你必须创建一个html文件(例如script_thats_used_multiple_times.html),其中包含以下内容:
<!DOCTYPE html>
<script type="application/dart" src="script_thats_used_multiple_times.dart"></script>
当然,从之前使用该文件的所有聚合物组件中删除原始文件,并将导入文件置于之上
<link rel="import" href="script_thats_used_multiple_times.html">
其将导入先前创建的HTML文件。易于理解的"