Как я могу получить доступ к службе Http angular2, прежде чем вызывать bootstrap()?

Мне нужно выяснить, аутентифицирован ли пользователь или нет, поэтому при загрузке корневого компонента он перенаправит пользователя на /signin или загрузит любую запрашиваемую страницу. (Я планирую сделать это, внедрив службу с логическим значением, если ей нужно войти в систему, прежде чем делать какие-либо запросы).

В документах Angular упоминается «Инжектор платформы» или «Корневой инжектор». Могу ли я получить доступ к этому, чтобы получить объект Http? или он создается при вызове бутстрапа и мне нужно создать свой инжектор с нуля, чтобы получить Http?


person Philip    schedule 07.01.2016    source источник
comment
Вы когда-нибудь разбирали это?   -  person Thibs    schedule 10.06.2016
comment
@Thibs нет   -  person Philip    schedule 11.06.2016


Ответы (1)


Перед начальной загрузкой модуль http не зарегистрирован как действительный поставщик, поэтому вы не можете использовать DI для его создания.

Возможно, вы можете найти способ создать его вручную, импортировав Http и выполнив

var http = new Http(..)

но вам нужно будет удовлетворить входные аргументы, и я не уверен, рекомендуется ли пытаться работать с модулями до того, как приложение перейдет в стабильное загрузочное состояние.

Чтобы сделать это простым, я бы порекомендовал выполнить предварительную угловую проверку, используя какую-либо другую простую реализацию http, такую ​​​​как jquery и т. Д.

person TGH    schedule 07.01.2016
comment
Я предполагаю, что можно создать инжектор самостоятельно, передать HTTP_PROVIDERS и запросить у него Http. - person Günter Zöchbauer; 07.01.2016