我有一个 ajax 调用,它收集某些实体的父子依赖项。在成功函数中,我将 ajax 返回的(数据)分配给全局级别的对象。
$.ajax(
{
type: "POST",
url: 'ajax_handler.php',
data: {action:'get_dependencies', relation:relation, 'jobs[]':jobs, project:project},
dataType: 'json',
async: false, //do not change
success: function(data)
{
for(var key in data)
{
if( data.hasOwnProperty(key) )
{
//Copy data object to document level existingDependency object
existingDependency[key] = data[key];
}
}
},
error: function(xhr)
{
alert('error2:'+xhr.responseText);
}
});
我将这个 AJAX 称为两次,它在一个函数中。一份给父母,一份给孩子。我认为这条线existingDependency[key] = data[key];
正在重新分配对象,因此之前的分配丢失了。换句话说,existingDependency 对象不能同时保存 ['parent'] 和 ['child'] 属性。
为了解决这个问题,我做了以下更改,以便existingDependency 拥有这两个属性:
success: function(data)
{
for(var key in data)
{
if( data[key].hasOwnProperty(relation) )
{
//Copy data object to document level existingDependency object
existingDependency[key][relation] = data[key][relation];
}
}
}
但这根本不起作用。existingDependency 对象为空。以下警报为空。
var keys = '';
for(key in existingDependency)
{
keys += key+'\n';
}
alert(keys);
任何想法为什么这个任务existingDependency[key][relation] = data[key][relation]
不起作用?data[key][relation] 保存一个数组,如果它有任何区别。