コンビネーターを使用して 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 を返す関数を提供する必要がある署名を理解していません。他のコールバックを提供する必要がないため、混乱を招きます。
また、Dialog の Div にワークフローを提供できる相互再帰関数をサポートしていることに、私は驚いたことに注意してください。私はこれを行うためのより良い方法があると思いますか?
ありがとう!