Angularjs 使用typescript rest客户端创建角度服务
我将Angular 1.4.7与typescript一起使用 我有一个自动生成的客户端,在typescript中使用Swagger调用rest服务,如下所示:Angularjs 使用typescript rest客户端创建角度服务,angularjs,typescript,swagger,Angularjs,Typescript,Swagger,我将Angular 1.4.7与typescript一起使用 我有一个自动生成的客户端,在typescript中使用Swagger调用rest服务,如下所示: module API.Client { 'use strict'; export class DefaultApi { ... 我试图通过以下方式使用它: import TDRService = API.Client.DefaultApi; export class ListaTrtController { priv
module API.Client {
'use strict';
export class DefaultApi {
...
我试图通过以下方式使用它:
import TDRService = API.Client.DefaultApi;
export class ListaTrtController {
private tdrservice: TDRService;
/* @ngInject */
constructor(service: TDRService) {
this.tdrservice = service;
}
但是我收到错误“Unknown provider:serviceProvider用您将在注入中使用的名称在angular中注册您的服务”
module API.Client {
'use strict';
export class DefaultApi {
...
angular.module('yourmodule').service('TDRService', DefaultApi);
Angular将使用变量名(而不是类型),因此它必须与Angular中注册的名称相同。而且,您可以在构造函数中使用private
,而不是像以前那样进行赋值
import TDRService = API.Client.TDRService;
export class ListaTrtController {
/* @ngInject */
constructor(private TDRService: TDRService) {
}
你的API是作为angular.module()定义的一部分注册的吗?angular必须知道从何处获取你注入的东西。哦,实际上看起来你可能忘记注册了控制器。angular.module(..).controller('ListaTrtController',ListaTrtController')是的,我有。service('DefaultApi',DefaultApi)我注册了控制器,但它找不到服务您的构造函数的参数名为
service
…这意味着Angular希望您使用该名称声明服务。但看起来您使用的是“DefaultApi”作为名称。请更改构造函数中的参数,使其与服务同名('DefaultApi')。