我正在使用Angular 2和TypeScript處理Meteor Web應用程序。爲了使用REST API,我使用Swagger Codegen生成了客戶端代碼。不幸的是,GitHub上沒有示例,如何使用其餘的客戶端。在Angular2中使用生成的Swagger TypeScript Rest Client
我具有被注入角2服務(ProductTreeService)和所生成的API(兩個標記爲「@Injectable」)的角2的視圖組件:
@Component({
selector: 'panel-product-selection',
template,
providers: [ProductTreeService, UserApi],
directives: [ProductTreeComponent]
})
export class PanelProductSelectionComponent
{
private categoriesProductsTree: Collections.LinkedList<CategoryTreeElement>;
private productTreeService: ProductTreeService;
private userApi: UserApi;
constructor(productTreeService: ProductTreeService, userApi: UserApi)
{
this.productTreeService = productTreeService;
this.userApi = userApi;
}
ngOnInit(): void
{
//...
}
}
雖然角服務僅是accessable和所有工作正常,當我注入UserApi時,應用程序崩潰。 UserApi和ProductTreeService之間的唯一區別是構造函數:服務沒有構造函數的參數,生成的Api class有:
constructor(protected http: Http, @Optional()@Inject(BASE_PATH) basePath: string) {
if (basePath) {
this.basePath = basePath;
}
}
所以,我怎麼能注入產生的API?
你可以請包括一些生成的代碼? UserApi,是不是隻是提供的示例?您鏈接的代碼並不意味着包含在項目中 - 它是生成代碼的一個示例。 – Martin
以下是使用由Swagger Codegen生成的Typescript-angular2 API客戶端的示例:https://github.com/taxpon/ng2-swagger-example。這會有幫助嗎? –