2014-12-05 2 views
1

Я доволен новой функцией в Дарт.Dart enum - Polymer

Но, я хотел бы использовать в веб-компонент (полимер)

Как это:

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 для ключа, чтобы найти значение карты.

Это возможно в веб-компоненте (полимер)?

ответ

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> 

Вы также можете перенести метод на миксин и сделать каждый из ваших элементов Полимерным перечислением таким образом, просто применяя перемешивание. Тем не менее, не очень красиво.

Смежные вопросы