这应该很简单,但我似乎无法绕过它。
所以我有我的dartFile.dart然后我有我的javaScriptFile.js。我如何链接这两个,以便我可以从我的dartFile.dart调用我的javaScriptFile.js中声明的JavaScript函数?
我试图按照this post中提供的解释,但我觉得这对我来说太模糊了:/
编辑:这是我尝试的内容:
在我的javaScriptFile.js中,只有这个简单的函数:
function myFunction() {
return 4;
}
在我的dartFile.dart中,只有这一小段代码:
import 'package:js/js.dart' as js;
void main() {
print(js.context.myFunction());
}
按照我提到的帖子中的说明,我在pubspec.yaml文件中添加了js的依赖项。 基本上我确实是原问题的提问者所在 - 我可以调用基本的JavaScript函数,比如alert,但是我试着调用我在javaScriptFile.js中声明的函数,我得到了一个' NoSuchMethodError&#39 ;
答案 0 :(得分:2)
你可以这样做:
确保在.dart文件之前包含JS或确保在从Dart运行脚本之前加载所有JS文件
飞镖文件的内容:
import 'dart:js';
void main() {
var ret = context.callMethod('myFunction', ['a', 'b']);
var inst = new JsObject(context['someClass'], ['instance']);
print(inst);
}
function myFunction() {
console.log(arguments);
}
function someClass(a) {
this.a = a;
}
这应该给你输出
[object Arguments] // from console.log
[object Object] // from print()
此致 罗伯特