2017-09-29 11 views
0

bindingable.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> 
} 

しかし、他のベストプラクティスの提案は素晴らしいでしょう。

関連する問題