angular2-jwt:没有AuthConfig的提供者

tub*_*u13 3 auth0 ionic2 angular

我想要使​​用angular2-jwt我的ionic2应用程序,我一直在努力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
  ]
})
Run Code Online (Sandbox Code Playgroud)

我在我的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){
     }

}
Run Code Online (Sandbox Code Playgroud)

Thi*_*ier 5

奇怪的是你定义了两次提供者AuthConfig:

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

第二个将覆盖第一个,并期望作为第一个参数AuthConfig注入AuthHttp.但是没有提供者AuthConfig.

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

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