Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Binding.scala构建一个封装另一个可组合单元的可组合包装器_Binding.scala - Fatal编程技术网

如何使用Binding.scala构建一个封装另一个可组合单元的可组合包装器

如何使用Binding.scala构建一个封装另一个可组合单元的可组合包装器,binding.scala,Binding.scala,我正在尝试使用binding.scala制作可组合组件。我希望能够有一个组件,可以用来包装传递进来的其他组件。例如:一个卡片组件,它将一个样式框包装在任何其他任意@dom函数周围。我尝试过几种方法,但我意识到由于@dom宏,类型似乎比它们看起来更复杂 下面,我介绍了一种不起作用的方法,但显示了它的意图。我希望能够调用wrapperMarkup并将其传递给contentMarkup 我发现了许多将数据传递到@dom函数并进行渲染的示例,但没有任何示例显示如何传递另一个@dom函数或@dom调用的结

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

在我发布这个问题后不久,我找到了显而易见的答案。在调用bind之前,我未能调用该函数

@dom
def wrapperMarkup(f:MarkupFun):Binding[Div] = {
  <div>card wrapper {f().bind}</div>
}
但是,任何其他最佳实践建议都会很好