我有一个用 dart2js 编译的应用程序(Dart SDK 版本0.6.13 .0_r25630),我想在每次需要时用 RequireJS 加载它。
首先,感谢上帝在编译的 javascript 中提供了包装函数,但在我的情况下还不够:(
我使用requirejs加载dart2js应用程序
require(["application.dart"], function () {});
但我想处理何时启动应用程序。例如点击事件。
require(["jQuery","application.dart"], function (jQuery,$) {
jQuery(element).click(function(){
$.startRootIsolate($.main$closure);
})
});
我破解了编译后的 Javascript,但我想知道它是否可以以本机方式进行。
在 application.dart.js 中,我将函数包装在 AMD 模块中
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as anonymous module.
define([],function(){
return factory();
} );
} else {
// Browser globals.
factory();
}
})(function($) {...})
然后我返回 $ 对象
return $;
最后我评论了我发现的这行代码
$.startRootIsolate($.main$closure);
感谢大家
马可