如何使用在我的主机项目中声明的类型并在生成的FunScript代码中通过Ajax提供服务?
例如,我假设我声明了一个类型T,然后创建一个以该格式提供数据的REST端点。现在,如果我想加载数据并从FunScript中使用它,则不再输入T.
根据Alfanso的回答编辑解决方案:
假设类型“MyType”在基本F#项目中定义,并且匹配此类型的数据在localhost上提供:6543 / myData
let start () =
async{
let url = "http://localhost:6543/myData"
let req = System.Net.WebRequest.Create(url)
let! data = req.AsyncGetJSON<MyType list>()
Globals.window.alert( (sprintf "%A" data) )
}
|> Async.StartImmediate
我缺少的是
答案 0 :(得分:2)
您能否发布一些代码,以便更好地了解您正在尝试做什么?作为参考,您可以看到如何使用此little project中的FunScript.HTML扩展来交换类型安全的JSON值的示例。在这种情况下:
CLIMutable
和System.Data.Linq.Mapping.Table
属性的F#记录在服务器,客户端和数据库之间共享类型:Source WebRequest.AsyncGetJSON<'T>
扩展程序,它在后台只发出XMLHttpRequest
,使用浏览器JSON.parse
方法解析结果并使用unbox<'T>
将对象“强制转换”为所需类型:here,here和here。 unbox<'T>
是您经常需要使用的小技巧。
我希望这有帮助!