我有这个HTML代码:
<textarea id="text-to-convert" on-change="change" value="{{text}}"></textarea>
Run Code Online (Sandbox Code Playgroud)
这个飞镖码:
import "dart:html";
import 'package:polymer/polymer.dart';
@CustomTag('dictionary-converter')
class DictionaryConverter extends PolymerElement with ObservableMixin {
@observable String text = "Initial text";
void change(Event event, var detail, TextAreaElement textElement) {
print(textElement.value);
print(text);
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,on-change事件仅会不时触发.(我还没知道到底是什么时候).
当我删除value={{text}}绑定时,每次更改textare时都会正确触发事件.
我忽略了什么或这是一个错误吗?
使用Polymer 0.8+,您可以使用*yourFieldName**已更改.当被观察的属性改变时,Changed将调用该方法.由于String text是双向数据绑定,更改textarea的值将更改值String text并调用该textChanged方法.这适用于您的原始代码,不需要ObservableBox
import "dart:html";
import 'package:polymer/polymer.dart';
@CustomTag('dictionary-converter')
class DictionaryConverter extends PolymerElement with ObservableMixin {
@observable String text = "Initial text";
textChanged(oldValue) {
print("textarea: ${this.shadowRoot.query("textarea").value}");
print("text: ${text}");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1177 次 |
| 最近记录: |