我想创造出这样的东西:
<ul>
<li>menu1
<ul>
<li>sub-menu1</li>
</ul>
</li>
<li>menu2</li>
</ul>因此,我使用WebSharper编写了以下代码:
let el =
UL [
LI [
Text "menu1"
UL [
LI [Text "sub-menu1"]
]
]
LI [Text "menu2"]
]但上面写着
UL [
LI [Text "sub-menu1"]
]应该具有IPagelet类型,但当前有类型Element。
有没有人知道如何使用WebSharper将文本+其他东西放在安莉元素下?
编辑:只是说我在stakc上有一个bug,我不能评论或接受@Tarmil的回答。
发布于 2014-09-15 15:09:18
这里的问题是,同一列表中的两个元素,Text "menu1"和UL [...],分别具有IPagelet和Element类型。Element是IPagelet的一个子类型,所以这应该可以工作,但是不幸的是,F#类型推断在这种情况下有一些困难。所以您需要通过将UL [...]转换为IPagelet来帮助它。
let el =
UL [
LI [
Text "menu1"
UL [
LI [Text "sub-menu1"]
] :> IPagelet
]
LI [Text "menu2"]
]事实上,如果组合子的类型为seq<IPagelet> -> Element而不是seq<#IPagelet> -> Element,则可以消除这个问题。我们可能会在未来将他们改变,但由于这将是一个突破性的变化,我们将保留它为下一个主要版本。
https://stackoverflow.com/questions/25850971
复制相似问题