enums - Dart 枚举 - 聚合物

标签 enums dart dart-polymer

我对 Dart 的新功能很满意。

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

像这样:

文件.dart

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

@published
Map itemList;

文件.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 组件(聚合物)中使用吗?

最佳答案

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

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

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 元素都以这种方式支持枚举。不过还是不是很漂亮。

关于enums - Dart 枚举 - 聚合物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27326224/

相关文章:

c# - 为什么我们不能有 "char"枚举类型

c++ - 根据字符串表示设置枚举值

c++ - 如何在 SQLite 数据库中存储枚举

dart - 数据绑定(bind)结构化对象在我的 polymer 元素上没有显示任何变化

dart - Polymer + dart2js:输出太大

java - 如何在 Frege native 声明中声明 Java 枚举?

flutter - 选择下拉按钮时文本字段焦点卡住

dart - 如何在angularDart项目中使用轮廓 Material 图标?

dart - 具有 contenteditable ="true"的元素的属性绑定(bind)

dart - 聚合物Dart 1.0中 map 的替代方法是什么?