2016-09-06 69 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//: