I have ExchangeService
Angular 2 @Injectable
class and I have an application main module:
@NgModule({
imports: [
BrowserModule,
HttpModule,
FormsModule,
ReactiveFormsModule,
ExchangeService,
RouterModule.forRoot(routes)
],
providers: [
{ provide: LocationStrategy,
useClass: HashLocationStrategy
},
ExchangeService
]
...})
which raises Exception
(index):16 Error: (SystemJS) Unexpected value 'ExchangeService' imported by the module 'Application5'
Error: Unexpected value 'ExchangeService' imported by the module 'Application5'
Error: (SystemJS) Unexpected value imported by the module Error: Unexpected value imported by the module
Error: Unexpected value imported by the module at eval (http://127.0.0.1:8080/node_modules/@angular/compiler/bundles/compiler.umd.js:13982:37) at Array.forEach (native) at CompileMetadataResolver.getNgModuleMetadata
Error: Unexpected value imported by the module at eval at Array.forEach (native) at CompileMetadataResolver.getNgModuleMetadata
The exception disappears when I remove ExchangeService
from the imports
clause (and I leave in providers
clause). I don't (at present) explicitly need ExchnageService
to be in imports
clause (I don't know what are benefits of it), I just want ExchangeService
to be available for injection in other services in components globally.
The question is - why I am not allowed write ExchangeService
in imports
clause? Imports
clause contains other TypeScript classes as well - like HttpModule
and so on and why imports
clause is not allowed to contain ExchangeService
as well?