0

Я использую word javascript Api для разработки надстройки над словами, мне нужно вставить элемент управления содержимым на кнопку щелчка и отправить запрос ajax. В ответе ajax мне нужно обновить один и тот же элемент управления содержимым.Как обновить один и тот же элемент управления содержимым в другом контексте

Я пытаюсь использовать следующие подходы:

1). При вставке cc в тег набора документов как «временный» и после получения ответа ajax поиск CC с использованием «contentControls.getByTag», но с несколькими элементами управления содержимым, которые не могут обновить правильный cc в качестве ответа ajax, может занять время поэтому несколько cc будут иметь «временный» тег.

2). После вставки куб.см в документе, я пытался загрузить куб.см «ID» с помощью:

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

Но она возвращает Undefine.

Просьба указать, как я могу достичь вышеуказанного требования. Каков правильный способ сделать это, или я могу использовать один и тот же объект диапазона в другом запуске слова и обновлять cc для этого диапазона.

ответ

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

 
}

Я думаю, что это поможет вам в вашем сценарии. спасибо!

+0

Спасибо, теперь я получаю идентификатор вставленного CC. Нужно ли использовать 'context.load (myCC);' так как я получаю contentControl без его использования. Пожалуйста, порекомендуйте. – Amit

+0

Да, вам нужно. –