我正在尝试使用 binding.scala 制作可组合的组件。我希望能够拥有一个组件,该组件可用于包装传入的其他组件。例如:一个卡片组件,它围绕任何其他任意 @dom 函数包装一个样式框。我尝试了几种方法,但意识到由于@dom 宏,类型似乎比看起来更复杂。
下面,我包含了一种不起作用的方法,但显示了意图。我希望能够调用 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.
}