使用 Dart 中的 resumable.js
Using resumable.js from Dart
我正在尝试使用 Dart 中的 resumable.js 代码:
var rs = new JS.JsObject(JS.context['Resumable'], [new JS.JsObject.jsify({
'target':context.server+'/upload'
})]);
files.forEach((file) {
rs.callMethod("addFile",[file]);
});
files
变量定义为 List<File>
(dart.html.File
)。当我用这两行检查 rs
对象的属性时:
JS.context["console"].callMethod("log",[rs['opts']]);
JS.context["console"].callMethod("log",[rs['files']]);
我发现 rs.opts
被正确初始化,但是 rs.files
总是包含长度为 1 的 ResumableFile
的实例。我猜这是因为方法 addFile 期望参数是实例Javascript File
但它得到 instanceof dart:html.File
.
你知道如何将 dart:html.File
转换为 Javascript File
或如何将参数传递给 resumable.js 吗?
我知道我可以选择使用方法 assignBrowse
和 assignDrop
,但我想坚持我的解决方案。
必须使用JsObject.fromBrowserObject获取底层js对象
files.forEach((file) {
rs.callMethod("addFile",[new JsObject.fromBrowserObject(file)]);
});
我正在尝试使用 Dart 中的 resumable.js 代码:
var rs = new JS.JsObject(JS.context['Resumable'], [new JS.JsObject.jsify({
'target':context.server+'/upload'
})]);
files.forEach((file) {
rs.callMethod("addFile",[file]);
});
files
变量定义为 List<File>
(dart.html.File
)。当我用这两行检查 rs
对象的属性时:
JS.context["console"].callMethod("log",[rs['opts']]);
JS.context["console"].callMethod("log",[rs['files']]);
我发现 rs.opts
被正确初始化,但是 rs.files
总是包含长度为 1 的 ResumableFile
的实例。我猜这是因为方法 addFile 期望参数是实例Javascript File
但它得到 instanceof dart:html.File
.
你知道如何将 dart:html.File
转换为 Javascript File
或如何将参数传递给 resumable.js 吗?
我知道我可以选择使用方法 assignBrowse
和 assignDrop
,但我想坚持我的解决方案。
必须使用JsObject.fromBrowserObject获取底层js对象
files.forEach((file) {
rs.callMethod("addFile",[new JsObject.fromBrowserObject(file)]);
});