我有兩個窗口。在第一個窗口中,我有下面的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