【问题标题】:Office JS - deleting a content control issueOffice JS - 删除内容控制问题
【发布时间】:2017-12-20 18:24:28
【问题描述】:

我正在尝试删除 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

【问题讨论】:

    标签: ms-office office-js


    【解决方案1】:

    我无法重现您描述的问题。鉴于您发布的代码不包含任何错误处理逻辑,我怀疑可能会默默地抛出错误,但您没有检测到它。

    以下代码 sn-p 成功删除了第一个具有标签 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 语句(从我上面的代码 sn-p 中省略),但没有抛出错误。最里面的 context.sync() 中的代码,用... 说明运行正常。
    • 实际上,从头开始。刚刚发现问题,请看我上面的编辑。我赞成您的回答,因为它是一个完整的工作示例(以及 Word.run 等)。
    • 感谢您的更新(和支持);很高兴听到你想通了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 2012-04-08
    • 2020-11-12
    • 1970-01-01
    相关资源
    最近更新 更多