我创建了一个自定义标记x-account,其属性余额是双重类型。当用户输入非数字数据时,抛出此异常。
未捕获错误:评估表达式'balance'时出错:type'string'不是'value'类型'double'的子类型。
@CustomTag('x-account')
class XAccount extends PolymerElement {
@published double balance;
...
}
<template>
<input id="account-amount" type="number" value="{{balance}}" autocomplete="off"/>
</template>
如何在XAccount中捕获此异常?
答案 0 :(得分:0)
您可以将字段更改为getter / setter
double _balance;
@published
double get balance => _balance;
set balance(value) {
if(value == null) {
_balance = null; // or _balance = 0;
}
if(value is String) {
_balance = double.parse(value)
}
}
通过这种方式,您可以包含可能会放入try
/ catch
块的分配或语句。
对于Polymer 1.0,请参阅Polymer dart: Data bind integer value to String attribute