Office 2013 Javascript API-将变量传递到“”的回调;.BindingDataChanged”;
Office 2013 Javascript API - Pass Variable to Callback of ".BindingDataChanged"
背景
我正在为Excel2013编写一个侧边栏应用程序,我有一个包装器功能,可以更新侧边栏的视图。我需要从多个事件中触发该函数(从而触发视图的更新),其中之一是绑定区域中的数据发生更改时。
我遇到的问题是,我需要将一个变量传递给那个包装器函数。它需要数据,我希望能够保存在设置中,然后只加载一次。
代码
当前代码:
Office.select("bindings#"+bindingID).addHandlerAsync(Office.EventType.BindingDataChanged, onBindingDataChanged);
function onBindingDataChanged(eventArgs) {
searchThroughData(eventArgs.binding.id);
}
function searchThroughData(bindingID) {
//repaint view
}
以上操作可触发重新绘制。但它不包括传递的变量。我所期望的是代码是这样的:
尝试过,不起作用:
Office.select("bindings#"+bindingID).addHandlerAsync(Office.EventType.BindingDataChanged, onBindingDataChanged(eventArgs,data));
function onBindingDataChanged(eventArgs,data) {
searchThroughData(eventArgs.binding.id,data);
}
function searchThroughData(bindingID,data) {
//repaint view
}
然而,这并不奏效。
问题
有什么想法可以传递这个变量吗?
在您尝试的解决方案中,您正在调用onBindingDataChanged函数,而不是使其可供处理程序调用。你需要做这样的事情(假设变量"数据"事先可用)
Office.select("bindings#"+bindingID).addHandlerAsync(Office.EventType.BindingDataChanged, onBindingDataChanged(data));
function onBindingDataChanged(data) {
return function(eventArgs) {
searchThroughData(eventArgs.binding.id, data);
};
}
function searchThroughData(bindingID,data) {
//repaint view
}
如果数据是一个全局变量,你可以只做
Office.select("bindings#"+bindingID).addHandlerAsync(Office.EventType.BindingDataChanged, onBindingDataChanged(data));
function onBindingDataChanged(eventArgs) {
searchThroughData(eventArgs.binding.id, data);
}
function searchThroughData(bindingID,data) {
//repaint view
}
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- 要求未定义JS回调参数
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 自引用回调
- 测试Angular Service解决错误回调中的promise
- 如何将一个JavaScript函数回调为多个函数
- JavaScript回调函数
- 用于回调的javascript参数
- 将json回调数据转换为日期
- 承诺在非节点式回调上使用Bluebird
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- Soundcloud Javascript SDK 3.0-回调无法读取属性'connectCallback
- 如何使用jqueryAJAX从页面中回调多个变量
- jquery Onclick函数带有导致双击的回调排序函数
- Javascript点击事件回调不起作用
- 一旦加载并渲染了角度引导typeahead,就使用回调
- 成功回调永远不会被JSONP请求调用
- 如何让程序员在javascript中实现正确的回调
- Angularjs使用“;这个“;promise内的关键字回调