В моем приложении Angular2 мне нужно сделать вызов какой-либо функции из приложения AuthenticationService и bootstrap на основе результатов этого вызова. Проблема заключается в том, что AuthenticationService имеет зависимость от HTTP от @ angular/http, и у меня очень мало информации о том, как создать службу http вручную, прежде чем вызывать функцию загрузки. Принятый ответ в этом вопросе angular2 bootstrap with data from ajax call(s) описывает то, что я хочу достичь совершенно, но, к сожалению, это было дано какой-то предыдущей версии Angular2.Сделать запрос AJAX перед загрузкой Приложение Angular2
Я попытался создать службы HTTP таким образом:
let injector = ReflectiveInjector.resolveAndCreate(HTTP_PROVIDERS)
let http = injector.get(Http);
, но я получил нулевое эталонное исключение в XsrfCookieStrategy или что-то подобное. Я считаю, что можно ввести какую-то пустую XsrfStrategy, но она, похоже, больше похожа на взлома, чем на хорошее решение. Итак, вопрос в том, есть ли хороший (официальный) способ загрузки приложения Angular2 с предоставлением некоторых зависимостей вверх, похожих на ссылку, добавленную выше.
Вы можете самонастройки компонент, который просто делает вызов Ajax и он самонастройки ваш реальный компонент ... Действительно, хотя вы можете просто хотите запрограммировать основной компонент, поэтому он может отобразить состояние для вашего приложения перед вызовом, а также делает сам вызов. –
Джейсон, я думаю, я могу понять, что вы имеете в виду здесь, но есть ли примеры или код, которые иллюстрируют идею приложения, построенного таким образом? Код, который я хочу запустить в бутстрапе, является главной и единственной точкой входа, поэтому он должен выполняться на любом маршруте (url) даже до того, как будет происходить что-то вроде маршрута. Поэтому я задаюсь вопросом, каков правильный угловой способ сделать это. Я думал, что размещение этого кода в файле bootstrap.ts было бы хорошей идеей –
Я еще не нашел «лучший способ» сделать это, у меня есть такая же проблема. Вот почему я написал комментарий вместо ответа, может быть лучший способ сделать это. Что бы вы могли сделать, у него есть «ParentComponent», который вы загружаете, и который выполняет первоначальный вызов API, и просто включите его в основной компонент с ngIf, когда ваш начальный вызов завершен. основной компонент> ' –