我有两个窗口。在第一个窗口中,我有下面的JSON。我使用Alloy.createController(“set_schedule”,{“data”:data})将此JSON从第1个窗口传递到第2个窗口。在第二个窗口中,我将数据推送到插槽,它正在修改第一个窗口的原始JOSN。我不想要这个。它不应该修改原始数据。我已经尝试将args.data存储到局部变量,然后操作,没有任何工作。在第二个窗口中修改JSON会在第一个窗口中修改原始的JSON
schedule.js
var data = [{
"day" : "monday",
"slots" : [],
"duration" : 0
}, {
"day" : "tuesday",
"slots" : [],
"duration" : 0
}, {
"day" : "wednesday",
"slots" : [],
"duration" : 0
}, {
"day" : "thursday",
"slots" : [],
"duration" : 0
}, {
"day" : "friday",
"slots" : [],
"duration" : 0
}, {
"day" : "saturday",
"slots" : [],
"duration" : 0
}, {
"day" : "sunday",
"slots" : [],
"duration" : 0
}]
var win = Alloy.createController("set_schedule", {
"data" : data
}).getView("setSchedule");
win.open();
set_schedule.js
var scheduleData = args.data; //copy to local variable
scheduleData[0].slots.push({"start": "09:00:00",
"finish": "17:00:00"});
现在我关闭set_schedule窗口,然后回来安排窗口它显示
var data = [{
"day" : "monday",
"slots" : [{"start": "09:00:00",
"finish": "17:00:00"}],
"duration" : 0
}, {
"day" : "tuesday",
"slots" : [],
"duration" : 0
}, {
"day" : "wednesday",
"slots" : [],
"duration" : 0
}, {
"day" : "thursday",
"slots" : [],
"duration" : 0
}, {
"day" : "friday",
"slots" : [],
"duration" : 0
}, {
"day" : "saturday",
"slots" : [],
"duration" : 0
}, {
"day" : "sunday",
"slots" : [],
"duration" : 0
}]
你能分享一些代码示例吗? – Sebastian