Javascript 对包装的js使用dart回调
我通过Javascript 对包装的js使用dart回调,javascript,dart,angular-dart,Javascript,Dart,Angular Dart,我通过dart:js包装了exif js库 @JS() library exif; import 'package:js/js.dart'; @JS() external PhotoDetails get EXIF; @JS() class PhotoDetails { factory PhotoDetails() { return EXIF; } @JS() extern
dart:js
包装了exif js库
@JS()
library exif;
import 'package:js/js.dart';
@JS()
external PhotoDetails get EXIF;
@JS()
class PhotoDetails {
factory PhotoDetails() {
return EXIF;
}
@JS()
external bool getData(img, callback);
}
还有一个小飞镖计划:
PhotoDetails photoDetails = new PhotoDetails();
var fileUploadInputElement = new FileUploadInputElement();
fileUploadInputElement.onChange.listen((e) => photoDetails.getData(
fileUploadInputElement.files[0], () {
print(this);
}));
它已经被回答了,但是当我这样做的时候,我有一个js错误:exif.js:351 uncaughttypeerror:callback.call不是一个函数
我试图手动转换以正常工作。但这并没有起到任何作用。对于lambda表达式,情况是一样的 我想你需要
AllowinetOp
或AllowinetOpCaptUratis
PhotoDetails photoDetails = new PhotoDetails();
var fileUploadInputElement = new FileUploadInputElement();
fileUploadInputElement.onChange.listen((e) => photoDetails.getData(
fileUploadInputElement.files[0], allowInteropCaptureThis((self, [_]) {
print(self);
})));
我不确定您的答案是否是原因,但现在它抛出了
Uncaught未处理的异常:参数不匹配的闭包调用:函数'call'NoSuchMethodError:传递给名为'call'的方法的参数数目不正确Receiver:闭包:()=>动态尝试调用:调用(“FileImpl”的实例)找到:call()#0对象。#noSuchMethod(dart:core patch/Object\u patch.dart:42)#1 Object.noSuchMethod(dart:core patch/Object\u patch.dart:45)
我更新了我的答案(添加了[\uuu,\uuu]
)。你能试试这是否有任何影响(不同的错误,…)这不是崩溃,但遗憾的是打印一个“”。所以现在我需要更深入地去发现我的错误。非常感谢。请尝试print(\ux)
而不是打印(此)
\u
和\u
只是未使用变量的名称。你可以用它们的专有名称来代替<代码>[…]是为了使它们成为可选的,因为我不知道尝试传递多少个参数,只使用了其中的两个。我假设第一个是这个
(不确定,我自己也试了一会儿)是的,这个有效。非常感谢!你能编辑你的答案吗?