2014-12-05 79 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元素的每個支持枚舉。雖然還不是很漂亮。