【发布时间】:2015-02-20 04:47:24
【问题描述】:
这是一个 Angular 1.0 应用程序。 Chrome 控制台中的错误是:
Uncaught Module.DEFAULT_REFLECTOR not initialized for dependency injection.http://goo.gl/XFXx9G
我已阅读其他帖子,并且我的 pubspec.yaml 中确实有 Angular 转换器:
dependencies:
barback: any
browser: any
angular: 1.0.0
msgpack:
git:
url: git://github.com/danellis/dart-msgpack.git
ref: master
dev_dependencies:
template_cache_transformer: any
threadsafe: yes
transformers:
- $dart2js:
environment:
MIRRORS: 'false'
- angular:
html_files:
- lib/templates/app.html
- lib/templates/input.html
- lib/templates/roster.html
- lib/templates/space.html
- lib/templates/space_list.html
- lib/templates/alerts.html
- lib/templates/rostermenu.html
- template_cache_transformer:
entry_point: webatara|templates/app.html
我的主要功能是这样的:
void main() {
applicationFactory().addModule(new WebataraModule()).run();
}
pub build 之后,修改后的 main.dart 中有这个:
void main() {
setStaticReflectorAsDefault();
staticApplicationFactory(generated_static_metadata.typeAnnotations, generated_static_expressions.getters, generated_static_expressions.setters, generated_static_expressions.symbols, generated_static_type_to_uri_mapper.typeToUriMapper).addModule(new WebataraModule()).run();
}
setStaticReflectorAsDefault 这样做:
setStaticReflectorAsDefault() => Module.DEFAULT_REFLECTOR = new GeneratedTypeFactories(typeFactories, parameterKeys);
看来 Module.DEFAULT_REFLECTOR 确实被设置了。那么为什么会出错呢?
【问题讨论】:
-
threadsafe设置有什么作用?从未听说过pubspec.yaml有这样的设置。我知道它在app.yaml中的作用。 -
好问题。我相信 DartEditor 在项目开始时就把它放在那里了。
-
好的,感谢您的反馈。我想知道如果它无效,为什么没有工具抱怨它。我认为这不是因为 Dart 没有线程。如果它实际上是有效的,它应该被记录在某个地方。我会睁大眼睛...
标签: dart angular-dart dart-pub dart2js