2014-08-29 2 views
2

내가 AngularDart의 v0.14.0 펍 서버에 내 응용 프로그램을 테스트 실행할 때 유형 생성 typeFactory지도에없는 'XXX'하지만 로컬 호스트에서 실행하면 오류AngularDart의 v0.14.0 오류 : 술집 서버가

Exception: Uncaught Error: Type 'CurrencyService' not found in generated typeFactory maps. Is the type's constructor injectable and annotated for injection? 
Stack Trace: 
#0  GeneratedTypeFactories.parameterKeysFor (package:di/src/reflector_static.dart:26:5) 
#1  Binding.bind (package:di/src/module.dart:61:49) 
#2  Module.bindByKey (package:di/src/module.dart:136:17) 
#3  Module.bind (package:di/src/module.dart:124:14) 
#4  CERPModule.CERPModule (http://localhost:8080/index.dart:71:9) 
#5  main.<anonymous closure> (http://localhost:8080/index.dart:59:201) 
#6  _RootZone.runUnary (dart:async/zone.dart:1082) 
#7  _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:488) 
#8  _Future._propagateToListeners (dart:async/future_impl.dart:571) 
#9  _Future._completeWithValue (dart:async/future_impl.dart:331) 
#10  _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:393) 
#11  _asyncRunCallbackLoop (dart:async/schedule_microtask.dart:41) 
#12  _asyncRunCallback (dart:async/schedule_microtask.dart:48) 
#13  _handleMutation (dart:html:39006) 

있다 : 3030이 오류가 발생하지 않습니다.

는 여기에 당신이 당신의 CurrencyService 클래스에 @Injectable 주석을 추가 할 필요가 아는 한 여기에 지금까지 내 CurrencyService

library cerp_currency_service; 

import 'dart:async'; 
import 'dart:convert'; 
import 'package:angular/angular.dart'; 


class CurrencyService { 
    Http _http; 
    CurrencyService (Http this._http); 
... 
} 

답변

1

내 모듈

class CERPModule extends Module { 
... 
    bind(CurrencyService); 
... 
} 

입니다. 맞아

@Injectable() 
class CurrencyService { 
+1

, 당신은 @Injectable 주석을 추가 할 필요가 - 디의 동적 버전이 주석을 필요로하지 않습니다 있습니다. 그러나이 코드는 pub (pub 빌드 또는 pub 서버)를 통해 빌드하거나 제공 할 때 주석이 없으면 작동하지 않습니다. 동적 버전에서 어설 션 모드가 활성화되면이 주석을 시행 할 예정인 https://github.com/angular/di.dart/pull/174의 PR이 있습니다. – vicb