gpt4 book ai didi

javascript - Office ContentControls 列表不准确

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:39:23 27 4
gpt4 key购买 nike

我可以通过多种方式来完成此操作,但让我们坚持使用 AddIn 本身。如果我创建一个 ContentControl:

Word.run((context) => {
let control = context.document.getSelection().insertContentControl();
control.tag = 'example';
control.insertOoxml('<xml here>');
context.sync();
});

然后(当然有适当的异步处理)我删除了控件:

Word.run((context) => {
let contentControls = context.document.contentControls;
context.load(contentControls, 'tag');
context.sync().then(() => {
for (let c = 0; c < contentControls.items.length; ++c) {
if (contentControls.items[c].tag === 'example') {
contentControls.items[c].delete(false); // delete the contentControl with the matching tag
}
}
context.sync()
});
});

然后我检查我刚刚删除的那个控件的内容控件列表:

Word.run((context) => {
let contentControls = context.document.contentControls;
context.load(contentControls, 'tag');
context.sync().then(() => {
for (var i = 0; i < contentControls.items.length; ++i) {
if (contentControls.items[c].tag === 'example') {
// this tag list still includes the deleted content control until I close and reopen the document
}
}
});
});

标签仍然显示已删除的内容控件。我必须关闭并重新打开文档才能刷新上下文。我是否缺少与文档当前状态正确同步的步骤? context.sync() 还不够吗?

注意:delete() 确实起作用:内容按预期从文档中消失。当我搜索文档时,它仍然在控件列表中。


进一步的研究已经确定了造成这种情况的原因。

当 TrackChanges 开启时,文档中的 ContentControls 并没有真正被删除。这仍然感觉像是一个单词错误,但是您可以检查 contentcontrol 上的 deleted 标志(不确定这是否真的可能,因为它可能处于某个任意级别的祖先),手动管理您的删除(就像我们正在做的那样) ),或关​​闭跟踪更改以解决此问题。

综上所述,我将把它留作一个问题,以防有人有更好的结果。

最佳答案

在同步上下文后尝试检查列表 - 在 .then 回调中:

Word.run((context) => {
let contentControls = context.document.contentControls;
context.load(contentControls, 'tag');
context.sync().then(() => {
for (let c = 0; c < contentControls.items.length; ++c) {
if (contentControls.items[c].tag === 'example') {
contentControls.items[c].delete(false); // delete the contentControl with the matching tag
}
}
context.sync().then(()=> {
//your updated list
})
});
});

关于javascript - Office ContentControls 列表不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50976082/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com