我有一个复杂的数据类型“AzureTemplate”,其中包含子项“AzureField”的列表。我根据this article实现了我在服务器端的读取和插入。效果很好。
还需要更新,我将插件复制/粘贴到更新中,因此它执行相同的操作,但使用更新。所以我的更新看起来像这样:
function update(item, user, request) {
// remove complex child object, make copy first
var fields = item.fields;
if (fields) {
delete item.fields;
}
request.execute({
success: function () {
var templateId = item.id; // "foreign key"
var fieldsTable = tables.getTable('AzureFields');
if (fields) {
// update the child fields
var updateNextField = function (index) {
if (index >= fields.length) {
// done updating fields, respond to client
request.respond();
} else {
var field = fields[index];
field.templateId = templateId;
// *** THE ID LOGGED HERE LOOKS FINE ***
console.log("updating field w/ id ", field.id);
fieldsTable.update(field, {
success: function () {
updateNextField(index + 1);
}
});
}
};
// kick off the loop saving each field
updateNextField(0);
} else {
// no fields. no need to do anything else
request.respond();
}
}
});
}
打印子“字段”ID的日志显示有效的字段ID(我在阅读时将它们保存在客户端)。但是我收到的错误是:
Error in script '/table/AzureTemplate.update.js'. Error: Invalid id value specified. AzureTemplate/update Tue Jan 27 2015, 10:11:31 AM
我在AzureField.update的顶部放置了一个console.log(),但是从未出现过,所以它没有进入那里。此外,当我直接从客户端更新单个子“字段”时,它工作正常。所以AzureField.update正在运行。有任何想法吗?
答案 0 :(得分:0)
var fieldsTable = tables.getTable('AzureFields');
...我的表名是 AzureField ,而不是 AzureFields 。上面的代码有效,希望对某人有帮助。
我之前错误地命名了一个表,并且得到了一个有关"表不存在"的有意义的错误。不确定为什么这种情况下的错误完全不相关。