【问题标题】:How To Add Url To An ng-repeat If Not Provided In JSON Object如果 JSON 对象中未提供 URL,如何将 URL 添加到 ng-repeat
【发布时间】:2015-11-25 18:18:04
【问题描述】:

我有一个从 httpq 调用返回的 JSON 对象。属性之一是 LinkUrl。有时这将有一个来自返回对象的预定 url,有时它只有一个文件名,我需要在该文件名的开头添加一个基本 url。

不确定是否有更角度的方式来执行此操作,或者是否需要使用正则表达式 if 语句。

下面我有返回的 LinkUrl,它只是文件。如果没有 url,我需要在将要托管的文件中添加一个 url,以便将 http://mycorp.com/stores/files/store11_OKC_Docs.pdf 输出到我的视图中。

任何帮助表示赞赏。

 0: Object
$$hashKey: "00B"
GroupId: "1"
GroupName: "Store # 11 - OKC"
LanguageName: "English"
LinkTypeAbbr: "Store_Docs"
LinkTypeDescr: "Store Documents"
LinkTypeId: "1"
LinkUrl: "store11_OKC_Docs.pdf"

【问题讨论】:

  • 当它是文件名时,您是否有可能在您的密钥LinkUrl 中获得字符串http://
  • 它会像上面那样返回或者像otherstore.com/stores/files/xxx.pdf那样返回http://

标签: javascript angularjs json regex


【解决方案1】:

你可以这样做

<a href="{{'http://' in obj.LinkUrl ? obj.LinkUrl : baseUrl + obj.LinkUrl}}" >{{obj.GroupName}}</a>

【讨论】:

    【解决方案2】:

    您可以使用正则表达式来检查该字段是否为 url。你可以在这里找到答案>>https://stackoverflow.com/a/5717133/211458(下面的共享代码)

    function ValidURL(str) {
      var pattern = new RegExp('^(https?:\/\/)?'+ // protocol
        '((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|'+ // domain name
        '((\d{1,3}\.){3}\d{1,3}))'+ // OR ip (v4) address
        '(\:\d+)?(\/[-a-z\d%_.~+]*)*'+ // port and path
        '(\?[;&a-z\d%_.~+=-]*)?'+ // query string
        '(\#[-a-z\d_]*)?$','i'); // fragment locater
      if(!pattern.test(str)) {
        alert("Please enter a valid URL.");
        return false;
      } else {
        return true;
      }
    }
    
    if (!ValidURL(yourObject.LinkUrl)) {
      yourObject.LinkUrl = yourAddress + yourObject.LinkUrl
    }
    

    【讨论】:

    • 以上逻辑,可以在获取数据后添加,您不必为此触摸 ng-repeat(我假设您可以选择在 ng-repeat 中处理以外的选项)。跨度>
    【解决方案3】:
    <a href="{{chckeURL(obj.LinkUrl)}}">file</a>
    
    $scope.chckeURL = function(url){
         /*Check here this is only a file name or full URL.
          using HTTP is present in the string or not.
          generate final url and return it  
         */
    return finalURL;
    }
    

    【讨论】:

      猜你喜欢
      • 2018-05-18
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 1970-01-01
      相关资源
      最近更新 更多