В настоящее время я получаю следующее сообщение об ошибке:Угловая Error 2 Service - Нет поставщика для Http
EXCEPTION: No provider for Http! (Login -> AuthHttp -> Http)
AuthHttp является ссылкой на Angular2-JWT. Может ли это быть проблемой? Я смотрел на это некоторое время, и я не могу найти, какую ошибку я мог бы иметь.
В моем login.ts:
import {Component} from 'angular2/core';
import {
FORM_DIRECTIVES,
FormBuilder,
ControlGroup,
Validators,
AbstractControl,
Control
} from 'angular2/common';
import {Http, Headers} from 'angular2/http';
import {Router} from 'angular2/router';
import {ButtonRadio} from 'ng2-bootstrap/ng2-bootstrap';
import {AuthHttp, AuthConfig} from 'angular2-jwt';
import {AuthService} from '../../services/auth/authService';
import {AlertService} from '../../services/alerts/alertsService';
import {User} from '../../datatypes/user/user';
@Component({
selector: 'login',
template: require('./login.html'),
directives: [ ButtonRadio, FORM_DIRECTIVES ],
providers: [AuthService, AlertService, Http, AuthHttp]
})
В моем main.ts:
document.addEventListener('DOMContentLoaded', function main() {
bootstrap(App, [
('production' === process.env.ENV ? [] : ELEMENT_PROBE_PROVIDERS),
HTTP_PROVIDERS,
ROUTER_PROVIDERS,
provide(LocationStrategy, { useClass: HashLocationStrategy }),
provide(AuthConfig, { useFactory:() => {
return new AuthConfig({
headerName: 'Authorization',
//headerPrefix: 'Bearer ',
tokenName: 'auth_token',
noJwtError: true
});
}}),
AuthHttp,
Http,
ConnectionBackend
])
.catch(err => console.error(err));
});
Попробуйте очистить своих поставщиков, просто наденьте верхний уровень на то, что на самом деле не нужно на нижних уровнях. У меня была какая-то схожая проблема, но она как-то исчезла через некоторое время ... :) – eesdil
Всегда хороший совет! Вещи действительно грязные сейчас, потому что я пытался каждую комбинацию без везения. Убирать вещи сейчас, может быть, это исправит. –
Почему вы настраиваете снова 'HTTP_PROVIDERS',' Http', 'AuthHttp' на уровне компонента? Поставщик «Http» уже содержится в «HTTP_PROVIDERS» ... Этот ответ может помочь вам понять, как работает инъекция зависимостей в Angular2: http://stackoverflow.com/questions/34804298/whats-the-best-way-to- инъекция-one-service-in-another-in-angular-2-beta/34807397 –