似乎Dart应用程序在加载封闭的HTML页面并且页面上的其他脚本完成后很久就在线程(隔离)中执行编译的main()函数。这使得无法将函数注入文档以供其他Web组件使用。
e.g。我有使用jquery设置初始化自己的UI组件...我希望将这些UI组件委托给用dart编写的控制器,只要我按照正确的顺序设置它们就可以正常工作。我甚至可以从dart回调到JS并运行我的UI设置但是......这只是一个通向远方的桥梁......(我已经谈过自己使用Web组件等等了让我自己决定使用Dart作为JS功能的一个大控制器......但是如果我必须通过箍来实现工作......叹息。)
1)有没有办法让dart同步初始化或控制初始化过程?
2)dart是否至少有一些逻辑边界在哪里初始化?我应该针对所有mysetup定位的一些事件,之后我知道它已经运行了吗?
注意:这与调用dart的脚本标记位置或者是否设置为sync或async无关...... Dart似乎会生成一个隔离并在以后故意调用main()。
更新: 看起来像document.ready确实在main之后发生了火,虽然我并不是100%确定它是否一致。
更新2: 似乎packages / browser / dart.js引导加载程序导致延迟。我发现我不需要这个,我可以直接导入已编译的dart js文件,它们按预期工作。例如如果我的应用程序是helloworld.dart我可以加载它,它的行为符合预期。也许这应该是显而易见的,但我之前没有看到有人以这种方式使用独立编译的飞镖。
作为奖励我应该注意你不需要pub来构建这些你只需将包链接到源目录并用dart2js -o outfile构建你的JS。再一次,也许是显而易见的,但不知道构建或引导程序还有什么,你可能不会想到尝试这个。