在這種情況下,只是DI是不夠的。下面這個鏈接地址同樣的問題:
http://blog.thoughtram.io/angular/2015/09/17/resolve-service-dependencies-in-angular-2.html
所以它說:當emitDecoratorMetadata選項設置
打字稿生成的元數據。但是,這並不意味着它會爲我們的代碼的每個類或每個方法盲目地生成元數據。當裝飾器實際附加到特定代碼時,TypeScript僅爲類,方法,屬性或方法/構造器參數生成元數據。否則,會生成大量未使用的元數據代碼,這不僅會影響文件大小,還會影響我們的應用程序運行時。
所以執行Metadta代,我們可以嘗試將以下兩個註釋之一:
import {HttpService} from 'scripts/httpService';
import {Inject} from 'angular2/core';
export class CurrentBlog{
constructor(@Inject(HttpService) public httpService:HttpService){}
}
或者,
import {Injectable} from 'angular2/core';
import {HttpService} from 'scripts/httpService';
@Injectable()
export class CurrentBlog{
constructor(public httpService:HttpService){}
}
這不是工作,因爲那時Angular2會抱怨'爲HttpService的沒有提供!'。 – budhajeewa
是的,這不會工作 –