Поддержка F # 3 для WebSharper - PullRequest
0 голосов
/ 25 марта 2012

Я определяю 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 или только после ее выпуска?

Спасибо!

1 Ответ

2 голосов
/ 06 апреля 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...