我正在使用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);
只要更新或选择绑定值,就可以很好地调用回调函数。
然后我有一个用例,当我从菜单栏中单击按钮时,需要更新绑定值。因此,我在功能文件中创建了一个函数,在其中提取了绑定并更新了它的值,效果很好。
Office.select("binding#" + id, function (asyncResult) {
if (asyncResult.status.toString() == "failed") {
console.log(asyncResult.error);
}
}).setDataAsync("hello");
但是在从函数文件更新绑定值之后,BindingSelectionChanged事件的回调函数停止在任务窗格中被调用,但是BindingDataChanged的回调函数仍然可以正常工作。
任何帮助将不胜感激!