Каков метод перенаправления пользователя на полностью внешний URL-адрес в Angular 2. Например, если мне нужно перенаправить пользователя на сервер OAuth2 для аутентификации, как мне это сделать?
Location.go()
, Router.navigate()
И Router.navigateByUrl()
прекрасно подходит для отправки пользователя в другой раздел (маршрут) в пределах углового 2 приложения, но я не могу видеть , как они могут быть использованы для перенаправления на внешний сайт?
redirect
angular
angular2-routing
Майкл Орил
источник
источник
Ответы:
Вы можете использовать это->
window.location.href = '...';
Это изменит страницу на то, что вы хотите ..
источник
document.location.href
или дажеLocation.href
как они все ссылаются на один и тот же объект. Ссылка на местоположениеУгловой подход к ранее описанным методам заключается в импорте
DOCUMENT
из@angular/common
(или@angular/platform-browser
в Angular <4) и использованиивнутри функции.
некоторые-page.component.ts
некоторые-page.component.html
Проверьте репозиторий PlateformBrowser для получения дополнительной информации.
источник
@angular/common
(т.е.import { DOCUMENT } from '@angular/common';
), но в остальном это прекрасно работает! См. Github.com/angular/angular/blob/master/packages/…@Inject(DOCUMENT) private document: any
DOCUMENT
облегчает замену объекта документа на макет в юнит-тестах. Это также позволяет использовать альтернативную реализацию на других платформах (серверная / мобильная).constructor(@Inject(DOCUMENT) private document: Document) { }
Решение , как сказал Деннис Смолек, очень простое. Установите
window.location.href
URL-адрес, на который хотите переключиться, и он просто работает.Например, если у вас был этот метод в файле классов вашего компонента (контроллер):
Тогда вы можете просто вызвать его с помощью соответствующего
(click)
вызова кнопки (или чего-то еще) в вашем шаблоне:источник
Я думаю, что вам нужно target = "_ blank" , поэтому вы можете использовать
window.open
:источник
Если вы использовали хук жизненного цикла OnDestry, вам может быть интересно использовать что-то подобное перед вызовом window.location.href = ...
это вызовет обратный вызов OnDestry в вашем компоненте, который вам может понравиться.
Ооо, а также:
где вы найдете маршрутизатор.
--- РЕДАКТИРОВАТЬ --- К сожалению, я мог ошибаться в приведенном выше примере. По крайней мере, сейчас это не работает так, как ожидалось в моем производственном коде - поэтому, пока у меня не будет времени на дальнейшие исследования, я решу это следующим образом (поскольку моему приложению действительно нужен хук, когда это возможно)
В основном, маршрутизация к любому (фиктивному) маршруту, чтобы форсировать хук, а затем перемещаться по запросу.
источник
в новых версиях Angular с окном как
any
источник
Решив проблему, я просто добавляю http: // в href.
источник
Я использовал window.location.href = ' http: // external-url ';
Для меня перенаправления работали в Chrome, но не работали в Firefox. Следующий код решил мою проблему:
источник
Я сделал это с помощью Angular 2 Location, так как не хотел сам манипулировать объектом глобального окна.
https://angular.io/docs/ts/latest/api/common/index/Location-class.html#!#prepareExternalUrl-anchor
Это можно сделать так:
источник
router.navigate(['/']);
это то, что сделал это для меня.Ни одно из вышеперечисленных решений у меня не сработало, я просто добавил
Это сработало для меня.
Или попробуйте использовать
источник
В твоих component.ts
В вашем component.html
источник