2016-06-08 5 views
2

다음의 예는 중합체 다트 documentation on behaviors으로부터 취해진 것이다. toggleHighlightset 메소드를 사용합니다. set이 어디에도 정의되어 있지 않기 때문에 이것이 가능한지 이해할 수 없습니다.폴리머 - 다트 동작 mixin에서 속성을 설정하는 방법은 무엇입니까?

@behavior 
abstract class HighlightBehavior { 
    @Property(notify: true, observer: 'highlightChanged') 
    bool isHighlighted = false; 

    static created(instance) { 
    print('Highlighting for $instance enabled!'); 
    } 

    @Listen('click') 
    toggleHighlight(_, __) { 
    set('isHighlighted', !isHighlighted); 
    }, 

    @reflectable 
    highlightChanged(bool newValue, _) { 
    toggleClass('highlighted', newValue); 
    } 
} 

데이터 바인딩을 수행하는 모든 기능을 트리거하는 비헤이비어에서 폴리머 속성을 어떻게 설정합니까?

동작이 PolymerBase을 구현하면 set -method를 사용할 수 있습니까? 빠른 테스트는 동작이 PolymerBase 일 때 set이 작동 함을 나타냅니다. 그러나 이것이 문서화 된 방법이 아닙니다. PolymerBase을 구현하여 원치 않는 부작용을 유발할 수 있습니까?

답변

0

HighlightBehavior은 추상적이므로 실제 인스턴스는 상속으로 확보됩니다. 문서에서

class MyElement extends PolymerElement with HighlightBehavior { 
    MyElement.created() : super.created(); 
} 

PolymerElementset 방법을 제공 PolymerBase을 연장한다.

+0

감사합니다. 지금은 이해합니다. Java에서 제공되는이 기능에 익숙해 지려면 다소 시간이 걸릴 것입니다. –

+0

위대한 :-) 행동은 복잡하고 행동에 대한 문서화가 필요하지 않으므로 분명하지 않습니다. 주위에 몇 가지 코드와 fibbling 후, 일들이 나에게 더 명확하게되었다. 실제로 나는 한 번 시작된 자신의 행동을 쓸 필요가 없지만 필요한 기능은 이미 polymer_elements lib에 있습니다. –

+0

공통 API를 노출하기 위해 요소에 대한 비헤이비어를 사용하려는 비즈니스 애플리케이션을위한 프레임 워크를 구축하고 있습니다. 'ViewBehavior'에서'view-companies'와'view-users'가 섞여서 쉘 요소가 그 자식들을 다루는 것을 허용하는 다음 예제를보십시오. ''일반적인 기능을 그룹화하는이 사용 사례는 행동의 아이디어를 충족시킵니다. –