0

我正在尝试使用 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.
}
4

1 回答 1

1

在我发布问题后不久,我找到了明显的答案。在调用绑定之前我未能调用该函数。

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

但是,任何其他最佳实践建议都会很棒。

于 2017-09-29T02:59:50.413 回答