Интерполяция в angularjs - PullRequest
0 голосов
/ 24 мая 2019

 <a href="{{link}}" target="_blank">{{link}}</a>

«Ссылка» - это URL, полученный из базы данных. При нажатии на ссылку, я хочу, чтобы браузер открыл ссылку. Проблема в том, что: допустим, имя моего сайта - stackoverflow.com. Если ссылка «facebook.com», то при нажатии на эту ссылку откроется «stackoverflow.com/facebook.com», а это не то, что мне нужно. Но если ссылка «https://facebook.com",», откроется «facebook.com», именно то, что я хочу. Вопрос в том, как сделать так, чтобы браузер открывал «facebook.com», если ссылка «Facebook». com "или" https://facebook.com"

Ответы [ 2 ]

1 голос
/ 24 мая 2019

Это поведение браузеров по умолчанию, когда вы не указываете абсолютный путь (без префикса http://), он рассматривается как относительный путь, поэтому он перемещается относительно текущего домена.

Вы можете прикрепить префикс http:// на стороне клиента.

Примечание, лучше использовать директиву ng-href, которая не допускает ни одной интерполированной ссылки на активную.

 <a ng-href="http://{{link}}" target="_blank">{{link}}</a>
0 голосов
/ 27 мая 2019

Вы можете использовать что-то вроде этого:

<a ng-href={{link}} target="_blank">{{link}}<a>

И в вашем контроллере AngularJs вы можете применить проверку проверки следующим образом:

if( link doesn't have http://){
    link = 'http://' + link;
}

Таким образом, ваша ссылка всегда начинается сhttp://

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...