我想将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
  ]
})

我在我的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定义了两倍的提供者:

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]
  })
]

关于angular - angular2-jwt:没有AuthConfig的提供程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36104849/

10-09 17:02