2016-09-06 73 views
0

在角應用程序我有<base href="/foo/bar/">$locationProvider.html5Mode(true);力絕對URL(忽略基本URL)中

我想創造一些名單:

<div ng-repeat="item in vm.items"> 
    <a ng-href="{{item}}" target="_blank">{{item}}</a> 
    <a ng-href="{{item}}" download>{{item}}</a> 
</div> 

我的項目可以是這樣的:['example1.com', 'www.example2.com', 'http://www.example3.com', 'https://www.example4.com'];

對於example3example4它工作正常。 什麼是解決它的最好的方式:

  • example1.com - 現在它去http://localhost/foo/bar/example1.com
  • www.example2.com - 現在它去http://localhost/foo/bar/www.example2.com

我怎樣才能迫使它使用絕對URL?它應該與http,httpsdownload屬性一起使用。

+0

嗯,我不知道應該明白,使用'HTTP:// www.example.com'? – MEGADEVOPS

+0

'example1.com'不是絕對URL。如果你想強制它,那麼你必須猜測你想要使用什麼方案並改變它。 – Quentin

+0

@MEGADEVOPS我從外部來源導入這些項目。我可以修改它與一些正則表達式,但也許有更簡單的方法 – zucker

回答

0

我已經決定使用:

fixUrl(item) { 
    return '//' + item.replace(/^.*:\/\//, ''); 
} 
0

呀,那麼你應該使用類似的東西:

if (strpos($url, 'http') == false) { 
    $url = 'http//:' .$url; 
} 

它將不具有它的每一個網址前面加上http//: