Скачать файл в Fable - PullRequest
       22

Скачать файл в Fable

0 голосов
/ 30 января 2019

Как скачать файл в Fable?Допустим, у меня есть данные 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"

Но это не выглядит красиво и элегантно.

1 Ответ

0 голосов
/ 31 января 2019

вы можете использовать функцию import в Fable, чтобы использовать тот же синтаксис в 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 или библиотеки.

...