如果JSON对象中没有提供,如何向ng重复添加Url

How To Add Url To An ng-repeat If Not Provided In JSON Object

本文关键字:ng Url 添加 对象 JSON 如果      更新时间:2023-09-26

我有一个从httpq调用返回的JSON对象。其中一个属性是LinkUrl。有时它会有一个来自返回对象的预先确定的url,有时它只会有一种文件名,我需要在该文件名的开头加上一个基本url。

不确定是否有更具角度的方法来实现这一点,或者是否需要使用regex-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"

您可以执行类似的操作

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

您可以使用regex来检查该字段是否为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
}
<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;
}