为什么Module.DEFAULT_REFLECTOR没有初始化?

时间:2014-12-22 04:47:17

标签: dart angular-dart dart-pub dart2js

这是一个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确实已经设置好了。那么为什么会出错?

1 个答案:

答案 0 :(得分:2)

变压器按变压器部分列出的顺序应用。 $ dart2js应该始终是最后一个,template_cache_transformer可能应该在angular之前。