Я работаю над надстройкой Office JS Word. Я создал привязки и прикрепил к нему обработчики событий BindingSelectionChanged и BindingDataChanged из панели задач следующим образом:
Office.context.document.bindings.addFromSelectionAsync(Office.BindingType.Text, { id: id },
(asyncResult: Office.AsyncResult<Office.Binding>) => {
if (asyncResult.status == Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error);
}
});
Office.select("binding#" + id).addHandlerAsync(Office.EventType.BindingSelectionChanged,this._controlSelected);
Office.select("binding#" + id).addHandlerAsync(Office.EventType.BindingDataChanged, this._controlUpdated);
И функции обратного вызова вызываются очень хорошо всякий раз, когда значение привязки обновляется или выбирается.
Тогда у меня был случай, когда мне нужно было обновить значения привязки при нажатии на кнопку в строке меню. Поэтому я создал функцию в файле Function, куда я извлек привязки и обновил ее значения, и она работала нормально.
Office.select("binding#" + id, function (asyncResult) {
if (asyncResult.status.toString() == "failed") {
console.log(asyncResult.error);
}
}).setDataAsync("hello");
Но после обновления значений привязки из файла функции функция обратного вызова для события BindingSelectionChanged перестала вызываться на панели задач, однако функция обратного вызова для BindingDataChanged по-прежнему работает нормально.
Любая помощь будет принята с благодарностью!