如何在PolymerElement中捕获数据类型不匹配异常?

时间:2015-04-11 14:11:44

标签: dart dart-polymer

我创建了一个自定义标记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中捕获此异常?

1 个答案:

答案 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