Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 使用typescript rest客户端创建角度服务_Angularjs_Typescript_Swagger - Fatal编程技术网

Angularjs 使用typescript 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

我将Angular 1.4.7与typescript一起使用 我有一个自动生成的客户端,在typescript中使用Swagger调用rest服务,如下所示:

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')。