如何在Dart lang中创建全局(在窗口上)对象? [英] How do I create a global (on the window) object in Dart lang?
本文介绍了如何在Dart lang中创建全局(在窗口上)对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Hello
的全局对象,并在该对象上添加函数 world
,所以浏览器中的任何其他JavaScript库都可以简单地使用 window.Hello.world();
在Dart lang中创建这样一个对象,我如何将它暴露在全局/放置在窗口
对象中?
在普通的JavaScript中,我可以写出:
window.Hello = {
world:function (){
console.log(Hello World!);
}
}
window.Hello.world();
但是,您如何在Dart中执行此操作?
解决方案
我在Dart-JS interop上工作。这是使用新包完成它的最简洁的方法:js / js.dart interop。
@JS()
library your_library;
import'package:js / js.dart';
@anonymous
@JS()
类HelloObject {
外部工厂HelloObject({Function world});
external world();
}
@JS()
外部集合Hello(HelloObject v);
@JS()
外部HelloObject获取Hello;
main(){
Hello = new HelloObject(world:allowInterop((){print(Hello from dart);}));
//你也可以从Dart中调用这个对象作为额外的奖励。
//例如,您可以从Dart或Js中调用它。
/// Hello.world();
}
Let's say I want to create a global object called Hello
and add the function world
on that object, so that any other JavaScript library in the browser can simply call it with window.Hello.world();
How do I create such an object in Dart lang and how do I expose it / place it globally / on the window
object?
In plain JavaScript, I would be able to write:
window.Hello = {
world: function() {
console.log("Hello World!");
}
}
window.Hello.world();
But how do you do this in Dart?
解决方案
I work on Dart-JS interop. Here is the cleanest way to do it using the new package:js/js.dart interop.
@JS()
library your_library;
import 'package:js/js.dart';
@anonymous
@JS()
class HelloObject {
external factory HelloObject({Function world});
external world();
}
@JS()
external set Hello(HelloObject v);
@JS()
external HelloObject get Hello;
main() {
Hello = new HelloObject(world: allowInterop(() { print("Hello from dart"); }));
// You can also call this object from Dart as an added bonus.
// For example you could call this from Dart or Js.
/// Hello.world();
}
这篇关于如何在Dart lang中创建全局(在窗口上)对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文