2014-12-05 61 views
1

我很满意Dart的新功能。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有一个地图itemList中,我想用枚举Categoria.ID重点查找地图的价值。

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

回答

2

这不支持,因为类型不能用于聚合物绑定。

以下表达式不支持也不及和枚举是类似的代码基本语法糖:

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元素的每个支持枚举。虽然还不是很漂亮。