Я пишу надстройку Word с использованием Office JS. Я создал документ Word, который имеет следующую структуру:
<OuterContentControl tag="Outer" cannotDelete>
<InnerContentControl tag="Inner" cannotDelete />
</OuterContentControl>
Я пытаюсь удалить внутренний элемент управления содержимым с помощью кода, подобного следующему:
async function delete() {
await Word.run(async (context) => {
const contentControls = context.document.contentControls.getByTag('Inner').load();
await context.sync();
contentControls.items.forEach(contentControl => {
contentControl.cannotDelete = false;
contentControl.cannotEdit = false;
contentControl.delete(false);
});
await context.sync();
});
}
Когда .delete
вызывается против внутреннего контроля контента, я получаю GeneralException
, но для внешнего контроля контента это работает. Нужно ли что-то делать по-другому, чтобы разрешить удаление? Я позволил удалить внешнюю, но это ничего не меняет.
Редактировать: После попытки предложений Рика пройти через свойство contentControls
"внешнего" элемента управления содержимым, я могу удалить некоторые из них. Те, которые могут и не могут быть удалены, генерируются одинаково. Я все еще получаю бесполезный GeneralException
на вызов ContentControl.delete
. Я также пытался позвонить .getRange(Word.RangeLocation.whole).delete()
и получить тот же GeneralException
. Похоже, что последний элемент управления содержимым, который является вложенным, - это тот, который не работает.
Основная причина Я блокирую свою внешнюю от удаления. Так что, если я разблокирую его от удаления, вызов delete для внутреннего устройства работает, но также удаляет внешний элемент управления содержимым. Похоже, ошибка в Word. Есть ли обходные пути?