【问题标题】:Dart enum - PolymerDart 枚举 - 聚合物
【发布时间】:2014-12-07 01:25:46
【问题描述】:

我对 Dart 的新功能很满意。

但是,我想在 web 组件(聚合物)中使用

像这样:

file.dart

enum Categoria {ID, DESCRICAO, NATUREZA, ID_SUBCATEGORIA_DA, DESCRICAO_SUBCATEGORIA_DA, ATIVO}

@published
Map itemList;

file.html

..

<template>
  <paper-input value="{{itemList[Categoria.ID]}}"></paper-input>
</template>

<script type="application/dart" src="file.dart">
</script>  

..

@published 的值中有一个 Map itemList,我想使用枚举 Categoria.ID 作为键来查找 Map 的值。

在 Web 组件(聚合物)中可能吗?

【问题讨论】:

    标签: enums dart dart-polymer


    【解决方案1】:

    这不受支持,因为类型不能在 Polymer 绑定中使用。

    不支持以下表达式,并且枚举基本上是类似代码的语法糖:

    class SomeClass {
      static final someVal = 1;
    }
    
    <template if="{{x is SomeClass}}"></template>
    <template if="{{x == SomeClass.someVal}}"></template>
    

    作为解决方法,您可以添加类似

    的方法
    Categoria categoriaEnum(String val) =>
      Categoria.values.firstWhere((i) => 
          '${i}'.toString().toLowerCase().endsWith('.${val.toLowerCase()}'));
    

    使用类似的表达式

    <paper-input value="{{itemList[categoriaEnum('ID')]}}"></paper-input>
    

    您还可以将方法移至 mixin,并通过应用混合使您的每个 Polymer 元素以这种方式支持枚举。不过还是不是很漂亮。

    【讨论】:

      猜你喜欢
      • 2015-03-07
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 2014-05-18
      相关资源
      最近更新 更多