angular2-jwt:没有 AuthConfig 的提供者

angular2-jwt: No provider for AuthConfig

我想在我的 ionic2 应用程序中使用 angular2-jwt,并且我不断收到 No provider for AuthConfig!

这是我的 app.ts:

import {AuthHttp, AuthConfig} from 'angular2-jwt';
import {Http} from 'angular2/http'
@App({
  template: '<ion-nav [root]="rootPage"></ion-nav>',
  config: {}, // http://ionicframework.com/docs/v2/api/config/Config/
  providers: [
     provide(AuthHttp, {
      useFactory: (http) => {
        return new AuthHttp(new AuthConfig(), http);
      },
      deps: [Http]
     }),
    AuthHttp
  ]
})

我正在我的 login.ts 页面上使用它:

import {AuthHttp, AuthConfig} from 'angular2-jwt';
@Page({
  templateUrl: 'build/pages/login/login.html',
  directives: [IONIC_DIRECTIVES]
})
export class LoginPage {
     constructor(private authHttp: AuthHttp){
     }

}

尝试将 AuthConfig 添加为依赖项:

import {AuthHttp, AuthConfig} from 'angular2-jwt';
import {Http} from 'angular2/http'
@App({
  template: '<ion-nav [root]="rootPage"></ion-nav>',
  config: {}, // http://ionicframework.com/docs/v2/api/config/Config/
  providers: [
     provide(AuthHttp, {
      useFactory: (http) => {
        return new AuthHttp(new AuthConfig(), http);
      },
      deps: [Http,AuthConfig]
     }),
    AuthHttp
  ]
})

很奇怪你为 AuthConfig 定义了两次提供者:

providers: [
  provide(AuthHttp, {
    useFactory: (http) => {
      return new AuthHttp(new AuthConfig(), http);
    },
    deps: [Http]
   }),
  AuthHttp // <-----------
]

第二个将覆盖第一个,并期望 AuthConfig 作为第一个参数注入 AuthHttp。但是 AuthConfig.

没有供应商

它应该通过删除第二个 AuthHttp 来工作,如下所述:

providers: [
  provide(AuthHttp, {
    useFactory: (http) => {
      return new AuthHttp(new AuthConfig(), http);
    },
    deps: [Http]
  })
]