我想将不同的 html-parts 拆分为自己的类,现在我不了解有关此代码的一件事(-snippet):
val z = for(a <- 0 to 5) yield div(s"$a")
body(h1("Testing stuff"), z)
工作得很好。
也是如此:
body(h1("Testing stuff"), test)
private def test = for(a <- 0 to 5) yield div(s"$a")
什么不起作用是这样的:
class Test[Builder, Output <: FragT, FragT](val bundle: scalatags.generic.Bundle[Builder, Output, FragT])
{
import bundle.all._
def render = for(a <- 0 to 5) yield div(s"$a")
}
val test = new Test(scalatags.Text)
body(h1("Testing stuff"), test.render)
这不会编译。它说(一旦h1()
被删除)
{quote} 类型不匹配,预期:Modifier[Builder],实际:IndexedSeq[test.bundle.all.Div.Self] {quote}
我根本不明白为什么。是否有一些隐含的魔法发生?有人可以启发我并告诉我它是如何完成的吗?
编辑:
为了进一步阐明我的代码和@Owen 的代码之间的区别:
在另一个类(我初始化一个 new Test
)中,我也做了 import bundle.all.all_
(从相同的基础派生),但不是 import scalatags.Text.all._
。所以在第二个包中似乎有一些隐含的处理转换。(虽然我还没有找到它们。)
我也觉得这很有趣,毕竟这与import bundle.all._
我作为捆绑传递时不同。scalatags.Text