至少我认为我提供的是正确的。下面是我的app.module文件和我使用AuthHttp的服务的相关片段。我按照ReadMe中的配置来创建工厂方法以提供AuthHttp,但是在我的服务中它没有被识别,这是一个持久的问题。我读过关于嵌套依赖注入的文献,我觉得自己做的似乎是对的。
app.module.ts
import { Http, RequestOptions } from '@angular/http';
import { provideAuth, AuthHttp, AuthConfig } from 'angular2-jwt/angular2-jwt';
export function authHttpServiceFactory(http: Http, options: RequestOptions) {
return new AuthHttp(new AuthConfig(), http, options);
}
@NgModule({
declarations: [
AppComponent,
ButtonFormComponent,
...
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule,
AppRoutingModule
],
providers: [
{
provide: LocationStrategy,
useClass: HashLocationStrategy
},
{
provide: AuthHttp,
useFactory: authHttpServiceFactory,
deps: [Http, RequestOptions]
},employee.service.ts
import { AuthHttp } from 'angular2-jwt/angular2-jwt';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/throw';
import { ApiSettings } from './api-settings';
@Injectable()
export class EmployeeService {
api: String;
auth: String;
constructor(private http: Http, private authHttp: AuthHttp) {
this.api = ApiSettings.API;
this.auth = ApiSettings.Auth;
}发布于 2017-12-20 12:28:42
您可以通过在您的app.module.ts,中使用下面的导入来解决这个问题--这里您的关键导入是AUTH_PROVIDERS.此外,请确保在提供程序数组中包括AUTH_PROVIDERS。
import { AuthHttp, AUTH_PROVIDERS, provideAuth, AuthConfig } from
'angular2-jwt/angular2-jwt';
@NgModule({
providers: [AUTH_PROVIDERS]
})https://stackoverflow.com/questions/43668932
复制相似问题