【问题标题】:Force absolute url in <a> (ignore base url) in强制 <a> 中的绝对 url(忽略基本 url)
【发布时间】:2016-09-06 09:26:18
【问题描述】:

在 Angular 应用程序中,我有 &lt;base href="/foo/bar/"&gt;$locationProvider.html5Mode(true);

我想创建一些列表:

<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

如何强制它使用绝对网址?它应该与httphttpsdownload 属性一起使用。

【问题讨论】:

  • 好吧,我不确定是否理解,使用http://www.example.com ?
  • example1.com 不是绝对 URL。如果你想强制它,那么你必须猜测你想使用什么方案并改变它。
  • @MEGADEVOPS 我从外部源导入这些项目。我可以用一些正则表达式修改它,但也许有更简单的方法
  • 制作一个过滤器,看这里stackoverflow.com/questions/21623967/…

标签: javascript angularjs url


【解决方案1】:

是的,那么你应该使用类似的东西:

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

它会在每个没有它的 URL 前面添加http//:

【讨论】:

    【解决方案2】:

    我决定使用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 2011-02-02
      • 2017-12-24
      • 1970-01-01
      相关资源
      最近更新 更多