从外部任务窗格修改绑定值后,不触发BindingSelectionChanged事件

时间:2019-01-08 09:44:55

标签: office-js word-addins

我正在使用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的回调函数仍然可以正常工作。

任何帮助将不胜感激!

0 个答案:

没有答案