Я создал бланк WebSharper с использованием комбинаторов, но моя цель - встроить его во всплывающее окно jQueryUI.Как следствие, мне нужно иметь возможность закрыть диалоговое окно, когда пользователь нажимает кнопку «Нет», следующее не работает:
let confirmationForm order =
let title = DialogConfiguration(Title = "Are you sure you want to place the order?")
let form = Formlet.Return ()
|> Enhance.WithCustomSubmitAndResetButtons
{ Enhance.FormButtonConfiguration.Default with Label = Some "Yes" }
{ Enhance.FormButtonConfiguration.Default with Label = Some "No" }
|> Enhance.WithFormContainer
let rec dialog = Dialog.New(Div [ result ], title)
and result =
Formlet.Do {
let! _ = form |> Enhance.WithResetAction (fun _ -> dialog.Close(); true)
dialog.Close()
return Server.SubmitOrder order
} |> Enhance.WithFormContainer
(dialog :> IPagelet).Render()
Formlet.Do {
let! order = orderForm
return confirmationForm order
}
|> Enhance.WithFormContainer
Диалог закрывается при нажатии кнопки «Да».Также я не понимаю сигнатуру, требующую от меня предоставить функцию, которая возвращает true, что немного сбивает с толку, поскольку мне не нужно предоставлять какой-либо другой обратный вызов.
Кроме того, обратите внимание, что я положительно удивлен, что этоподдерживает взаимно рекурсивную функцию, позволяющую обеспечить рабочий процесс для Div диалога.Я предполагаю, что есть лучший способ сделать это, хотя?
Спасибо!