В Angular2 ссылка mailto распознается как компонент маршрута - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь создать почтовую ссылку в проекте Angular. Но вместо открытия перспективы. Angular поднимает его как компонент маршрута. Как я могу это исправить?

Когда я пытаюсь использовать следующий код:

<a [href]="mailto:myName@myDomain.com">myName@myDomain.com</a>

Когда я нажимаю на ссылку, меня перенаправляют на неопределенную страницу. И получите следующее сообщение об ошибке:

ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'null'
Error: Cannot match any routes. URL Segment: 'null'
    at ApplyRedirects.push../node_modules/@angular/router/fesm5/router.js.ApplyRedirects.noMatchError (router.js:2469)
    at CatchSubscriber.selector (router.js:2450)
    at CatchSubscriber.push../node_modules/rxjs/_esm5/internal/operators/catchError.js.CatchSubscriber.error (catchError.js:34)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
    at TapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/tap.js.TapSubscriber._error (tap.js:61)
    at resolvePromise (zone.js:831)
    at resolvePromise (zone.js:788)
    at zone.js:892
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:423)
    at Object.onInvokeTask (core.js:17290)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:422)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:195)
    at drainMicroTaskQueue (zone.js:601)```

Ответы [ 2 ]

1 голос
/ 08 ноября 2019

Ваш HTML должен выглядеть следующим образом:

<a href="mailto:myName@myDomain.com">myName@myDomain.com</a>

Обратите внимание, что у него нет [] вокруг атрибута href. Когда вы оборачиваете атрибут в [], он ожидает переменную.

Если по какой-то причине вы все еще хотите использовать привязку, вы можете передать значение в виде строки:

<a [href]="'mailto:myName@myDomain.com'">myName@myDomain.com</a>
0 голосов
/ 08 ноября 2019

[href]="mailto:myName@myDomain.com"

Этот синтаксис <[]> предназначен для привязки данных, поэтому в угловом режиме попытайтесь разрешить "mailto:myName@myDomain.com" как переменную. Вы должны попробовать, как показано ниже

<a href="mailto:myName@myDomain.com">myName@myDomain.com</a>
...