2017-09-29 5 views
0

binding.scala를 사용하여 조합 가능한 구성 요소를 실험하고 있습니다. 전달되는 다른 구성 요소를 래핑하는 데 사용할 수있는 구성 요소를 보유하고 싶습니다. 예를 들어, 임의의 다른 @dom 함수 주위에 스타일 상자를 래핑하는 카드 구성 요소. 몇 가지 접근법을 시도했지만, @dom 매크로 때문에 유형이 나타나는 것보다 더 복잡해 보입니다.Binding.scala를 사용하여 다른 작성 가능한 단위를 래핑하는 조합 가능한 래퍼를 작성하는 방법

아래에는 작동하지 않지만 의도를 보여주는 접근 방법이 포함되었습니다. wrapperMarkup을 호출하고 contentMarkup을 전달할 수 있기를 원합니다.

데이터가 @dom 함수로 전달되어 렌더링되는 많은 예제가 있지만 다른 @dom 함수 나 @dom 호출의 결과를 전달하는 방법을 보여주는 예제는 없습니다.

이것을 수행하는 좋은 방법이 있습니까?

type MarkupFun =()=>Binding[Div] 

@dom 
def contentMarkup():Binding[Div] = { 
    <div>card Content</div> 
} 

@dom 
def wrapperMarkup(f:MarkupFun):Binding[Div] = { 
    //<div>card wrapper {f.bind}</div> // What I want that doesn't work 
    <div>card wrapper {contentMarkup().bind}</div> // works but not what I want. 
} 

답변

1

질문을 게시 한 직후 나는 명백한 대답을 발견했습니다. bind를 호출하기 전에 함수를 호출하지 못했습니다.

@dom 
def wrapperMarkup(f:MarkupFun):Binding[Div] = { 
    <div>card wrapper {f().bind}</div> 
} 

그러나 다른 우수 사례는 좋습니다.