如何在寓言中下载文件?假设我有一个CSV数据,我想将其保存在我的计算机上。
我尝试将ts2fable
与Download.js
一起使用。但是,它仅创建一个接口:
// ts2fable 0.6.1
module rec Download
open Fable.Import
type [<AllowNullLiteral>] IExports =
abstract downloadUrl: title: string * url: string -> unit
abstract downloadBlob: title: string * blob: Browser.Blob -> unit
abstract downloadText: title: string * content: string -> unit
我认为有一种直接导入.js模块的方法
let download = Fable.Core.JsInterop.importMember "../src/download.js"
但是它看起来并不优雅。
答案 0 :(得分:2)
您可以在寓言中使用import
函数,以便在JavaScript中使用相同的语法。
因此,在您的情况下,它会显示以下内容:
// If the file is in your src folder
let download : Download.IExports = import "*" "./path/to/download.js"
// If you use npm to manage the library
let download : Download.IExports = import "*" "download.js"
您可以使用如下代码:
let anchor = Browser.document.createElement("a") :?> Browser.HTMLAnchorElement
anchor.innerText <- "Test download"
anchor.onclick <- fun _ ->
download.downloadText("test.txt", "Hello, this is the content of the file.")
Browser.document.body.appendChild(anchor)
|> ignore
有关信息,我在Firefox,Chrome和Safari下测试了该代码。它适用于Chrome和Safari,但在Firefox下没有任何反应。我不知道这是不是Firefox或库的限制。