AngularDart v1.0 Uncaught Type" [type]"在生成的typeFactory映射中找不到

时间:2014-10-17 15:32:26

标签: dart angular-dart

我有一个我主要在AngularDart v0.12中构建的应用程序,它正在JS中构建并运行得很好,但在升级到AngularDart v1.0并考虑到重大更改之后,它无法运行现在JS在构建它之后没有问题。尝试在Chrome中运行时,控制台会出现以下错误:

Uncaught Type "QueryService" not found in generated typeFactory maps

以下是我的pubspec.yaml配置:

name: ###
author: ###
description: ###
homepage: ###
transformers:
   - angular:
        dart_sdk: "C:/dart/dart-sdk"
        suppressWarnings: false
   - $dart2js:
        suppressWarnings: false
        minify: false
        checked: true
dependencies:
      angular: any
      angular_dart_ui_bootstrap: any
      bootjack: any
      browser: any
      chrome: any
      di: any
      dquery: any
      google_oauth2_client: any
      http_server: any
      inject: any
      js: any
      logging: any
      mock: any
      mongo_dart: any
      route: any
      shadow_dom: any
      shelf: any
      shelf_route: any
      shelf_web_socket: any
      sqljocky: any
      unittest: any

以下是我的模块类:

class AppModule extends Module{
  AppModule(){

    /*
     * Services, Routers, and Controller
     */
    bind(QueryService);
    bind(RoutingService);
    bind(RouteInitializerFn, toValue: initRoutes);
    bind(NgRoutingUsePushState, toValue: new NgRoutingUsePushState.value(false)); 

    /*
     * Components
     */
    bind(Login);
    bind(Dashboard);
    bind(SideNav); 
  }
}

以下是QueryService类:

@Injectable()
class QueryService{
    Http _http;
    Scope _scope;

     QueryService(Http this._http, Scope this._scope){
        someFunction();
     }
 }

重申一下,这个应用程序在使用DartVM运行时工作正常,但似乎不想在内置到JS时注入QueryService。

另外,我知道这可能与this问题非常相似,但解决方案似乎对我的情况没有任何影响,而且AngularDart版本更新。

2 个答案:

答案 0 :(得分:1)

@Injectable注释应该触发工厂的生成。

如果不是你可能没有运行角度变压器?

你pubspec应该列出这个变换器,即:

name: myApp
dependencies:
  angular: ">=1.0.0 <2.0.0"
transformers:
  - angular

答案 1 :(得分:1)

显然我是通过main.dart文件中的相对路径直接导入我的应用程序库,而不是将其作为包导入。这导致了库的重复声明,这必然会给变换器带来一些问题。我基本上只需要从

更改main.dart文件的导入
import '../library/src/app.dart';

import 'package:myPackage/app.dart'