Dart 绑定值时未正确触发更改事件

Dart 绑定值时未正确触发更改事件,dart,dart-polymer,Dart,Dart Polymer,我有以下html代码: 这是省道代码: 导入“dart:html”; 进口“包装:聚合物/聚合物.dart”; @CustomTag('dictionary-converter') 类DictionaryConverter使用ObservaleMixin扩展了聚合关系{ @可观察字符串text=“初始文本”; 无效更改(事件、变量详细信息、TextAreaElement textElement){ 打印(textElement.value); 印刷品(文本); } } 在这种情况下,仅会不

我有以下html代码:


这是省道代码:

导入“dart:html”;
进口“包装:聚合物/聚合物.dart”;
@CustomTag('dictionary-converter')
类DictionaryConverter使用ObservaleMixin扩展了聚合关系{
@可观察字符串text=“初始文本”;
无效更改(事件、变量详细信息、TextAreaElement textElement){
打印(textElement.value);
印刷品(文本);
}
}
在这种情况下,仅会不时触发更改时的
事件。(我还不知道确切的时间)

当我删除
value={{text}}
绑定时,每次更改textare时都会正确地触发事件


我是忽略了什么,还是这是一个bug?

显然,我必须使用所描述的
可观察框

因此,我最终得出以下结论:

import“包装:polymer/polymer.dart”;
导入“package:observe/observe.dart”;
@CustomTag('dictionary-converter')
类DictionaryConverter使用ObservaleMixin扩展了聚合关系{
ObservableBox csvText=新的ObservableBox(“初始文本”);
就绪(){
csvText.changes.listen(转换);
}
无效转换(x){
字符串text=csvText.value;
}
}

对于聚合物0.8+,您可以使用*yourFieldName**Changed。当观察到的属性更改时,将调用
Changed
方法。由于
String text
是双向数据绑定,因此更改text区域的值将更改
String text
的值,并调用
textChanged
方法。这适用于您的原始代码,不需要
ObservableBox

导入“dart:html”;
进口“包装:聚合物/聚合物.dart”;
@CustomTag('dictionary-converter')
类DictionaryConverter使用ObservaleMixin扩展了聚合关系{
@可观察字符串text=“初始文本”;
文本更改(旧值){
打印(“textarea:${this.shadowRoot.query(“textarea”).value});
打印(“文本:${text}”);
}
}