我有一个用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($) {...})
然后我返回$ Object
return $;
最后我评论了这行代码,我找到了
$.startRootIsolate($.main$closure);
谢谢大家
马
答案 0 :(得分:0)
我怀疑这是可能的,如果没有黑客攻击你的代码。但是,Dart 1.6增加了对延迟加载的支持,这可能会为您提供另一种方法来满足您的需求吗?
http://news.dartlang.org/2014/08/dart-16-adds-support-for-deferred.html