Google app maker 如何在客户端脚本文件中一次创建多个项目/记录或保存项目/记录数组
我想使用客户端脚本同时创建多个记录。这就是我正在做的:Google app maker 如何在客户端脚本文件中一次创建多个项目/记录或保存项目/记录数组,google-app-maker,Google App Maker,我想使用客户端脚本同时创建多个记录。这就是我正在做的: var ceateDatasource = app.datasources.Reservation.modes.create; var newItem = ceateDatasource.item; newItem.User = user; //'eric' newItem.Description = description; //'000' newItem.Location_Lab_fk = lab.value.Id; //'T' ne
var ceateDatasource = app.datasources.Reservation.modes.create;
var newItem = ceateDatasource.item;
newItem.User = user; //'eric'
newItem.Description = description; //'000'
newItem.Location_Lab_fk = lab.value.Id; //'T'
newItem.Area_fk = area.value.Id; //'L'
newItem.Equipment_fk = equipment.value.Id; //'S'
for(var i = 0 ; i < 3; i ++) {
newItem.Start_Date = startDate;
newItem.Start_Hours = '03';
newItem.Start_Minutes = '00';
newItem.End_Date = startDate;
newItem.End_Hours = '23';
newItem.End_Minutes = '30';
// Create the new item
ceateDatasource.createItem();
}
var ceateDatasource=app.datasources.Reservation.modes.create;
var newItem=ceateDatasource.item;
newItem.User=User;//'埃里克的
newItem.Description=Description;//'000'
newItem.Location\u Lab\u fk=Lab.value.Id;//'不
newItem.Area_fk=Area.value.Id;/'我是
newItem.device\u fk=device.value.Id;//'是的
对于(变量i=0;i<3;i++){
newItem.Start_Date=开始日期;
newItem.Start_Hours='03';
newItem.Start_Minutes='00';
newItem.End_Date=开始日期;
newItem.End_Hours='23';
newItem.End_Minutes='30';
//创建新项目
ceateDatasource.createItem();
}
但我得到的结果是:
创建了三条记录,但只有第一条记录有数据。其他两条记录的字段中有空值。我怎样才能做到这一点
谢谢
更新(2019-3-27): 通过将所有内容放入for循环块中,我可以使其正常工作。不过,我还有一个问题 有没有类似下面示例代码的方法
var recordData = [Data1, Data2, Data3]
var ceateDatasource;
var newItem = new Array(recordData.length) ;
for(var i = 0 ; i < recordData.length; i ++) {
ceateDatasource = app.datasources.Reservation.modes.create;
newItem[i] = ceateDatasource.item;
newItem[i].User = recordData[i].user;
newItem[i].Description = recordData[i].Description;
newItem[i].Location_Lab_fk = recordData[i].Location_Lab_fk;
newItem[i].Area_fk = recordData[i].Area_fk;
newItem[i].Equipment_fk = recordData[i].Equipment_fk;
newItem[i].Start_Date = recordData[i].Start_Date;
newItem[i].Start_Hours = recordData[i].Start_Hours;
newItem[i].Start_Minutes = recordData[i].Start_Minutes;
newItem[i].End_Date = recordData[i].End_Date;
newItem[i].End_Hours = recordData[i].End_Hours;
newItem[i].End_Minutes = recordData[i].End_Minutes;
}
// Create the new item
ceateDatasource.createItem();
var-recordData=[Data1,Data2,Data3]
var ceateDatasource;
var newItem=新数组(recordData.length);
对于(变量i=0;i
首先,它准备一个数组“newItem”,一次只调用“ceateDatasource.createItem()”来保存所有新记录(或项)。
我尝试使用此方法,但它只保存最后一条记录“newItem[3]”
我需要在“ceateDatasource.createItem()”中编写回调函数,但Google App Maker总是显示一条警告“不要在循环中生成函数”。那么,有没有方法一次调用“createItem()”来保存多条记录?或者有一些像“array.push”这样的函数可以使用吗
谢谢 根据AppMaker的要求:
创建数据源是用于在特定数据源中创建项的数据源。其项属性始终由草稿项填充,该草稿项可通过编程方式绑定或设置
您试图做的是从同一草稿项创建三个项。这就是为什么你会看到你得到的结果。如果要创建多个项,则需要为每个项创建一个草稿项,因此只需将所有代码放入for循环中
for(var i = 0 ; i < 3; i ++) {
var ceateDatasource = app.datasources.Reservation.modes.create;
var newItem = ceateDatasource.item;
newItem.User = user; //'eric'
newItem.Description = description; //'000'
newItem.Location_Lab_fk = lab.value.Id; //'T'
newItem.Area_fk = area.value.Id; //'L'
newItem.Equipment_fk = equipment.value.Id; //'S'
newItem.Start_Date = startDate;
newItem.Start_Hours = '03';
newItem.Start_Minutes = '00';
newItem.End_Date = startDate;
newItem.End_Hours = '23';
newItem.End_Minutes = '30';
// Create the new item
ceateDatasource.createItem();
}
嗨,莫菲尼斯莫,谢谢你的帮助。它现在可以工作了。另一个问题是,如果新项是一个数组,它能否将数组创建到数据源中?这意味着不要使用for循环逐个创建新项目。谢谢。@EricCW我不确定我是否真的理解了,我需要一些代码示例来理解你想问的问题。嗨,Morfinismo,对不起,我没说清楚。我已经在上面的问题中添加了一些更新,谢谢。
app.datasources.Reservation.saveChanges(function(){
//TODO: Callback handler
});