1
我有app.component.ts
這樣的:依賴注入構造器參數:在`RouteConfig`初始誤差分量
import { RouteConfig, Router } from '@angular/router-deprecated';
@RouteConfig([
{
path: '/meter', name: 'Meter', component: Meter
}
])
和app.tpl.html
這樣的:
<main>
<router-outlet></router-outlet>
</main>
的Meter
成分是這樣的:
import { Device } from './device.model';
@Component({
selector: 'meter',
providers: [Device],
template: require('./meter.tpl.html')
})
export class Meter {
constructor(
public devices: Device
) {
}
}
Device
模式是這樣的:
import { Injectable } from '@angular/core';
@Injectable()
export class Device {
constructor(
public deviceSerialNr: string
) {
console.log('Device created');
}
}
當我運行應用程序,我得到的錯誤:
EXCEPTION: Error: Uncaught (in promise): EXCEPTION: Error in :0:0
ORIGINAL EXCEPTION: No provider for String!
ORIGINAL STACKTRACE:
Error: DI Exception
但是,如果我從constructor
參數類根移動屬性public xx: XXX
,這將是確定。
--------------- UPDATE --------------
我不應該注入設備類作爲一個參數角度組件構造函數。只需從Device類中刪除@Injectable並從Meter的構造函數中刪除公共設備decalre。