Javascript App Maker删除表上的项目并更新
我有一个应用程序,我希望能够从谷歌电子表格中获取列,并在我的应用程序中的表格上列出一个列表。此外,我希望能够删除此表中的项目 现在我正在使用AMU库函数Javascript App Maker删除表上的项目并更新,javascript,import,google-app-maker,Javascript,Import,Google App Maker,我有一个应用程序,我希望能够从谷歌电子表格中获取列,并在我的应用程序中的表格上列出一个列表。此外,我希望能够删除此表中的项目 现在我正在使用AMU库函数AMU.deleteAll,它所做的只是 AMU.deleteAll = function(widget){ var records = widget.datasource.items; records.forEach(function(record){ record._delete(); }); }; 因此,当我有一个全
AMU.deleteAll
,它所做的只是
AMU.deleteAll = function(widget){
var records = widget.datasource.items;
records.forEach(function(record){
record._delete();
});
};
因此,当我有一个全新的空白表格时,当我使用AMU.import.fromSpreadsheet
时,我的应用程序可以从我的电子表格中更新(在这里查看完整的库goo.gl/RkeqZw),它将从我的电子表格中获取所有项目,并将它们正确地放在我的表格中,之后,我可以使用delete函数删除表中的所有项目。这里是事情变得一团糟的地方,当我再次尝试使用导入函数时,列表中会填充空条目,如果我尝试使用删除函数,则会出现错误:
“驱动器表内部错误。找不到记录。原因:执行失败。详细信息:在路径:camo0A_084fQ处找不到对象。(HTTP状态代码:404)错误:驱动器表内部错误。找不到记录。在deleteAllData处(服务器脚本:232)”
我不知道为什么会发生这种情况,对我来说,似乎数据正在保存,删除函数只删除值,而不是实际条目 如果您想从模型中删除所有项目,可以进行单一服务器调用(您上面引用的代码不会对客户端上加载的每个项目进行服务器调用):
//从模型中删除所有记录的服务器脚本
函数deleteAllRecordsFromModel(){
var allRecords=app.models.MyModel.newQuery().run();
应用程序删除记录(所有记录);
}
//调用服务器函数的客户端脚本
google.script.run
.withSuccessHandler(函数(){
//TODO:处理成功(可选)
})
.withFailureHandler(函数(){
//TODO:处理错误(可选)
})
.deleteAllRecordsFromModel();