0

我正在使用 word javascript Api 开发 word 插件,我需要在按钮单击时插入内容控件并发送 ajax 请求。在 ajax 响应中,我需要更新相同的内容控件。

我正在尝试使用以下方法:

1)。在将 cc 插入文档集标记为“临时”并获得 ajax 响应后,使用'contentControls.getByTag'搜索 CC ,但由于多个内容控件无法更新正确的 cc,因为 ajax 响应可能需要时间,因此多个 cc 将有“临时”标签。

2)。在文档中插入 cc 后,我尝试使用以下方法加载 cc 'ID'

var range2 = context.document.getSelection().parentContentControlOrNullObject;
context.load(range2);

但它返回未定义。

请指导我如何实现上述要求。这是执行此操作的正确方法,或者我可以在另一个单词运行中使用相同的范围对象并更新该范围的 cc。

4

1 回答 1

0

这应该很简单。当您使用 API 插入内容控件时,将返回一个内容控件对象。这实际上是该内容控件的句柄。加载后,您可以稍后对其进行任何操作,包括添加修改内容。查看此示例以了解如何执行此操作:

function InsertCCandUpdate() {
     Word.run(function(context) {
        //  we first insert a content control, on this case on the selection!
        //notice we'll hold a reference to the CC in the myCC var:

        var myCC = context.document.getSelection().insertContentControl();
        context.load(myCC);
        
        return context.sync()
        .then(function(){
            // myCC holds a handle to the  contentt control.... then we can update its content
            myCC.insertText(getSomeContent(),"replace");



        })
    });
}

function getSomeContent(){
//this method is just to simulate your  AJAX call.
return("some text from your AJAX call");

}

我认为这将对您的情况有所帮助。谢谢!

于 2017-02-07T18:11:53.527 回答