Javascript 如果JSON对象中未提供Url,如何将Url添加到ng repeat
我有一个从httpq调用返回的JSON对象。其中一个属性是LinkUrl。有时它会有一个来自返回对象的预定url,而有时它只会有一个文件名,我需要在该文件名的开头加上一个基本url 不确定是否有更具角度的方法来实现这一点,或者是否需要一个正则表达式if语句 下面是返回的LinkUrl,它就是文件。如果没有url,我需要在文件的前面加上一个url,以便它输出到我的视图中 谢谢你的帮助Javascript 如果JSON对象中未提供Url,如何将Url添加到ng repeat,javascript,angularjs,json,regex,Javascript,Angularjs,Json,Regex,我有一个从httpq调用返回的JSON对象。其中一个属性是LinkUrl。有时它会有一个来自返回对象的预定url,而有时它只会有一个文件名,我需要在该文件名的开头加上一个基本url 不确定是否有更具角度的方法来实现这一点,或者是否需要一个正则表达式if语句 下面是返回的LinkUrl,它就是文件。如果没有url,我需要在文件的前面加上一个url,以便它输出到我的视图中 谢谢你的帮助 0: Object $$hashKey: "00B" GroupId: "1" GroupName: "Stor
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>
您可以使用正则表达式检查该字段是否为url。您可以在这里找到答案>>(下面的共享代码)
$scope.chckeURL=函数(url){
/*选中此处这只是一个文件名或完整URL。
字符串中是否存在使用HTTP。
生成最终url并返回它
*/
回归终局;
}
当字符串为文件名时,是否有可能在键LinkUrl
中获得字符串http://
?它将像上面那样返回,或者像http://Above 逻辑,可以在获取数据后添加,您不必为此触摸ng repeat(我假设您对除在ng repeat中处理以外的其他选项持开放态度)。
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;
}