Ms office Office JS-删除内容控制问题

Ms office Office JS-删除内容控制问题,ms-office,office-js,Ms Office,Office Js,我正在尝试删除Word中的内容控件,我正在浏览以下文档: 这是我的代码: let mycc = context.document.contentControls.getByTag('mycc'); if (mycc) { context.load(mycc, 'text'); context.sync().then(() => { mycc.items[0].delete(true); context.sync().then(() =>

我正在尝试删除Word中的内容控件,我正在浏览以下文档:

这是我的代码:

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);

我无法重现你所描述的问题。考虑到您发布的代码不包含任何错误处理逻辑,我怀疑可能有错误正在悄无声息地抛出,但您没有检测到它

以下代码段成功删除了第一个具有标记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);

我确实有
catch
语句(从上面的代码片段中省略),但没有抛出错误。最内部context.sync()中的代码运行正常,如
..
所示。实际上,请将其删除。刚刚发现问题,请参阅我的编辑上面。我对你的答案投了赞成票,因为这是一个完整的工作示例(以及Word.run等);很高兴听到你找到了答案。我确实有
catch
语句(从上面的代码片段中省略),但没有抛出错误。最内部context.sync()中的代码运行正常,如
..
所示。实际上,请将其删除。刚刚发现问题,请参阅我的编辑上面。我对你的答案投了赞成票,因为这是一个完整的工作示例(以及Word.run等);很高兴听到你明白了。