从Dart调用javascript

时间:2012-12-12 17:42:46

标签: javascript dart

我能够从dart发出警报消息,但无法弄清楚如何调用我在dart的另一个js文件中编写的函数。如果直截了当,这将是一个很好的卖点。我确实看到了this post,这让我开始了,但我觉得必须有办法,所以如果你想出来的话请分享爱。

这就是我所做的:

  1. 将此添加到yaml文件中:

    依赖关系:   JS:     托管:js

  2. 将导入语句添加到dart文件的顶部:将'package:js / js.dart'导入为js;

  3. 添加此代码以显示警告消息

    js.scoped((){           js.context.alert(“欢呼雀跃!”);          });

  4. 这是我觉得应该工作的部分但是没有:鉴于我有一个javascript函数doSomething(),我应该可以调用

    js.context.doSomething();

2 个答案:

答案 0 :(得分:12)

首先在pubspec.yaml

中添加js package作为依赖项
dependencies:
  js: any

然后你就可以使用你自己的js函数myFunc()

import 'package:js/js.dart' as js;

main() {
  js.context.myFunc();
}

js.context是javascript window的别名。

有关详细信息,请参阅Using JavaScript from Dart: The js Library

答案 1 :(得分:0)

也许我的答案对某人有价值,所以这就是为什么我要从Dart代码发布简单的js函数调用。

添加依赖项

dependencies:
  js: any

创建Js文件可以说test.js

function Test() {
    return 12+20;
}

在index.html test.js标记中的<script src="...">文件上方添加

在dart中互操作以上javascript功能

@JS()
library t;

import 'package:js/js.dart';

@JS()
external int Test();

class MyOwn {

  MyOwn();

  int get value => Test();


}

和angularDart TODOLIST(这是默认组件)

@override
  Future<Null> ngOnInit() async {
    print(MyOwn().value);
  }