我无法让我的json数组接受更改。我正在尝试从数组中删除一个对象,它似乎工作但是当我查看服务器上的json数组时它保持不变。我在这里缺少什么?
这是我正在使用的功能:
$(function() {
$("#rectangle-delete").click(function() {
var selection = $('#templateSelection > option:selected').text();
var json = (function () {
var json = null;
$.ajax({
'async': false,
'global': false,
'type': 'POST',
'contentType':"application/json",
'url': 'server/php/data/' + selection,
'dataType': "json",
'success': function (data) {
json = data;
}
});
return json;
})();
var ID_clicked = $(".rectangle.selected.targeted").attr('id');
console.log('initial array is ' + json);
json.some(function(e) {
if (e.ID === ID_clicked) {
var values = json.map(function(e) { return e.ID; });
var index = json.map(function(e) { return e.ID; }).indexOf(ID_clicked);
var data = JSON.stringify(json[index]);
json.splice(index, 1);
return true; // stop the array loop
}
});
console.log('new array is ' + json);
});
});
控制台显示:
initial array is [object Object],[object Object],[object Object]
然后
new array is [object Object],[object Object]
但我仍然没有更改服务器上的实际json
文件。
答案 0 :(得分:2)
当您从服务器下拉json时,您没有获得对服务器上对象的引用,但您获得了数据的副本。
所以你只是修改客户端上的数据。
要更新服务器上的对象,您应该通知服务器的更改(或者反转逻辑,让服务器执行计算并直接在客户端上检索结果)。