2014-12-05 7 views
1

다트의 새로운 기능에 만족합니다.다트 enum - 폴리머

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> 
에 .. 값에

이지도 itemList에 내가이지도의 가치를 찾기 위해 키를 열거 Categoria.ID를 사용하고 싶습니다 @published.

웹 구성 요소 (폴리머)는 가능합니까?

답변

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> 

또한 믹스 인으로 메서드를 이동하고 믹싱을 적용하여 각 폴리머 요소가 열거 형을 지원하도록 할 수 있습니다. 아직도 매우 아름답 지 않다.

관련 문제