Nano Hash - криптовалюты, майнинг, программирование

Angular2 - дождитесь установки перед маршрутизацией

У меня есть клиент Angular2, использующий RC4 и "@angular/router": "3.0.0-beta.2". Когда приложение загружается впервые, оно выполняет вызов webApi (в тот же домен), чтобы получить некоторые данные конфигурации. Это важно — он содержит URL-адрес webApi (и другие вещи).

Мне нужно не показывать логин или любую страницу, пока это не будет завершено. Я пытаюсь скрыть содержимое, пока это не будет завершено следующим образом:

<div *ngIf="IsConfigReady">
   <router-outlet></router-outlet>
</div>

Но я получаю ошибки маршрутизации, если я скрываю выход маршрутизатора:

Ошибка: не удается найти основной выход для загрузки «MyComponent»

Пользователь может переходить ко многим компонентам с URL-адресом, который непосредственно нацелен на них. Я не могу поставить ngif на все отдельные компоненты.

Мне кажется, должен быть способ дождаться завершения установки, прежде чем начнется маршрутизация. С помощью CanActive я могу остановить маршрутизацию, но она не будет продолжаться, как только приложение будет готово.

Может быть, мне нужно думать об этом по-другому. Любые идеи?


Ответы:


1

Вы должны использовать защиту canActivate для этого. CanActivate имеет следующую подпись

canActivate(
    // Not using but worth knowing about
    next:  ActivatedRouteSnapshot,
    state: RouterStateSnapshot
  )

вы можете извлечь URL-адрес из state, например

state.url

сохранить URL-адрес в каком-либо сервисе. После того, как вы вернете загрузку конфигурации, они перейдут к соответствующему URL-адресу, к которому можно получить доступ в обратной форме службы.

01.07.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..