Я хочу показать всплывающее окно, когда пользователь нажимает на ссылку , которая является внешней по отношению к угловому приложению .
Как проверить, является ли URL внешним?
Например. указывая на тот же домен, но другой документ
<a [href]="someUrl" appCheckExternalUrl>{{someUrl}}</a>
@Directive({
selector: '[appCheckExternalUrl]'
})
export class CheckExternalUrlDirective {
constructor(private el: ElementRef<HTMLAnchorElement>) { }
get url() { return this.el.nativeElement.href; }
get isExternalUrl() {
return ???;
}
}
Сложность в том, что это зависит от настроек маршрутизатора.
Допустим, мое приложение размещено в mydomain.com/myapp
и определяет маршрут /myroute
. Тогда:
mydomain.com/myapp/myroute
- внутренний маршрут
mydomain.com/anotherapp
- внешний маршрут.
Но если маршрутизатор использует маршрутизацию хэштегом, то
mydomain.com/myapp/myroute
является внешним.
Этот URL-адрес также является внешним, поскольку он не обрабатывается приложением:
mydomain.com/myapp/assets/logo.png