我只是在学习Websharper,所以我还是很困惑。
在Intellifactory示例网页上,计算器示例的代码似乎使用Button
,好像Webshaper提供了一些GUI控件,但安装在磁盘上的代码使用自己的帮助函数来创建一个这样的按钮:
let btn caption action =
Input [Attr.Type "button"; Attr.Value caption; Attr.Style "width: 30px"]
|>! OnClick (fun e _ -> action ())
好像Webshaper不包含基本的GUI控件,所以你必须做这样的事情来获取它们(这似乎违背了使用像Websharper这样的抽象的目的)。
我想要一个带有回调的滑块,只要其值发生变化就会调用该回调。如何使用Websharper获取一个?
答案 0 :(得分:4)
你可以使用JQueryUI中的滑块:
[<JavaScript>]
override this.Body =
let text = Span []
let slider = Slider.New(SliderConfiguration(min = 0, max = 10, value = 5))
// typed way to subscribe doesn't work, internally tries to bind handler to 'sliderslide' event
// per documentation (http://api.jqueryui.com/slider/#event-slide) should be 'slide'
// slider.OnSlide(fun _ -> text.Text <- string slider.Value )
JQuery.JQuery.Of(slider.Widget).Bind("slide", Func<_, _, _>(fun _ _ -> text.Text <- string slider.Value )).Ignore
Div [
Div [ slider ]
Div [ text ]
] :> _