【问题标题】:How to catch data type mismatch exception in PolymerElement?如何在 PolymerElement 中捕获数据类型不匹配异常?
【发布时间】:2015-04-11 14:11:44
【问题描述】:

我创建了一个自定义标签 x-account,其属性 balance 为 double 类型。当用户输入非数字数据到数量时,会抛出此异常。

未捕获的错误:评估表达式“balance”时出错:类型“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 中捕获这个异常?

【问题讨论】:

    标签: dart dart-polymer


    【解决方案1】:

    您可以将字段更改为 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

    【讨论】:

      猜你喜欢
      • 2013-01-28
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多