Я определяю DU для различных классов, которые я использую в HTML:
type Class =
| Logo
| Screen
| Continue
Теперь, к сожалению, FSharpValue.GetUnionFields
не переводится в JS (я бы этого не ожидал) и переопределяю ToStringна DU такое, что оно переводится в JS, похоже тоже не работает.Таким образом, я определил следующие операторы для добавления / удаления классов из элементов Dom:
[<JavaScript>]
let getClassString = function
| Logo -> "logo"
| Screen -> "screen"
| Continue -> "continue"
[<JavaScript>]
let inline (|+>) (x : Element) (c : Class) = x.AddClass (getClassString c); x
[<JavaScript>]
let inline (|->) (x : Element) (c : Class) = x.RemoveClass (getClassString c)
Что действительно делает его блаженством:
[<JavaScript>]
let mainMenu =
Div [
H2 [Text "Jewel"; Br [] :> _; Text "Warrior"] |+> Logo
[
"Play", gameScreen
"HighScore", highScores
"About", notReady
"Exit", notReady
] |> Seq.map (fun (text, screen) -> LI [Button [Text text] |>! OnClick (fun _ _ -> show screen)])
|> UL |+> Menu
] |+> MainMenu |+> Screen
Может ли кто-нибудь подтвердить, что тип F #провайдерам было бы неплохо создать мой Class DU напрямую из CSS?
Можно ли ожидать, что WebSharper будет совместим с бета-версией VS11 или только после ее выпуска?
Спасибо!