我正在尝试传递一个变量来访问AJAX调用返回的特定结果片段。我在页面上获取每个ID,然后尝试从AJAX调用中访问该特定数据,但是我不知道如何将变量传递给数据对象以获取该项。例如,如果结果包含标题文本,如果我要硬编码,我会使用
var Title = data.d.Title
我想要做的是动态更改“标题部分”。以下是我到目前为止:
function LoadItem() {
//Call REST API to load list item, pass the Item id to the service
var requestUri = "../_api/web/lists/getbytitle('" + ListType + "')/items("+GlobalFormID+")";
var requestHeaders = {
"accept": "application/json;odata=verbose"
};
$.ajax({
url: requestUri,
contentType: "application/json;odata=verbose",
headers: requestHeaders,
success: onSuccess,
error: onError
});
//set each data value from the response to a variable and then set each input field to their respective items
function onSuccess(data, request) {
for (var i = 0; i < formIDs.length; i++){
var x = formIDs[i]
//Here I should display the value for that item from the data object
console.log(data.d.[x])
}
}
function onError(error) {
//alert("error");
}
}
我知道我不能做data.d. [变量名]显然是因为它不是正确的语法,但我不知道其他任何方式。任何帮助将不胜感激。
答案 0 :(得分:0)
访问属性的正确语法是:
object.property
object["property"]
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors
答案 1 :(得分:0)
自端点
http://site url/_api/web/lists/GetByTitle('<list title>')/items(<item id>)
返回列表项资源,您可以像这样访问Title
属性:
function onSuccess(data) {
console.log(data.d.Title);
}
示例强>
function loadListItem(webUrl, listTitle,itemId) {
var endpointUrl = webUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/items(" + itemId + ")";
return $.ajax({
url: endpointUrl,
contentType: "application/json;odata=verbose",
headers: {
"accept": "application/json;odata=verbose"
}
});
}
loadListItem(_spPageContextInfo.webAbsoluteUrl,'Tasks',1)
.done(function(data){
console.log(data.d.Title);
})
.fail(
function(error){
console.log(error);
});
答案 2 :(得分:-1)
感谢大家的意见,我明白了。在成功进行AJAX调用后,我只需要执行以下操作。我使用前面定义的数组formID,并将该数组项作为键传递。
function onSuccess(data,request){
for (var i = 0; i < formIDs.length; i++){
var x = formIDs[i]
$("#"+x).val(data.d[x]);
//console.log(data.d[x]);
}
}