使用Polymer,我实现了一个自定义表单,它使用polymer_signals.html
来监听来自任意其他聚合物元素的更改。
它是这样实现的:
<link rel="import" href="packages/polymer_elements/polymer_signals/polymer_signals.html">
<polymer-element name="user-settings" extends="form">
<template>
<polymer-signals on-polymer-signalauth-changed="{{onAuth}}"></polymer-signals>
...
此元素在父聚合物元素中动态实例化,如下所示:
var userSettings = new Element.tag('form', 'user-settings');
$['main'].children.add(userSettings);
这引发了例外:
Exception: Concurrent modification during iteration: Instance(length:4) of '_GrowableList'._notify@0x1c4cf589 (http://127.0.0.1:3030/buddy/web/packages/polymer_elements/polymer_signals/polymer_signals.dart:39:12)
<anonymous closure> (http://127.0.0.1:3030/buddy/web/packages/polymer_elements/polymer_signals/polymer_signals.dart:49:12)
如果我静态地实例化聚合物形式,我不会得到这个错误。我该如何防止这种情况?
答案 0 :(得分:2)
我无法重现你的问题。
经常会遗漏两件常见的事情
如果您使用自定义main
方法
查看Polymer querySelector working on DartVM but not in Chrome after compile
在扩展DOM元素的元素的构造函数中调用super.polymerCreated()
。
查看Custom Polymer element extending AElement in Dart
如果仍然无法解决问题,请在问题中添加更多代码(例如用户设置元素的外观)。