我正在尝试删除Word中的内容控件,我正在浏览这些文档:https://dev.office.com/reference/add-ins/word/contentcontrol
这是我的代码:
let mycc = context.document.contentControls.getByTag('mycc');
if (mycc) {
context.load(mycc, 'text');
context.sync().then(() => {
mycc.items[0].delete(true);
context.sync().then(() => { ... })
})
}
不会抛出任何错误,并且内部最同步内的代码可以工作(插入另一个内容控件)。
我究竟做错了什么?
编辑:发现问题。内容控件确实被删除了,但我也想删除内容。我应该通过true
,而不是将delete
传递给false
。
我无法重现您所描述的问题。鉴于您发布的代码不包含任何错误处理逻辑,我怀疑可能会默默地抛出错误,但您没有检测到它。
以下代码片段成功删除了第一个包含标记mycc的内容控件,并包含一个catch
语句,用于处理Word.run
中可能发生的任何错误。
Word.run(function (context) {
var myContentControls = context.document.contentControls.getByTag("mycc");
if (myContentControls) {
context.load(myContentControls, "text");
return context.sync()
.then(function () {
myContentControls.items[0].delete(true);
return context.sync()
.then(function () {
console.log("Done!");
});
});
}
}).catch(OfficeHelpers.Utilities.log);