Office js Office JS API-settings.getItem不是函数
我试图检索以前保存在同一会话中的文档中的设置,但是我得到的是Office js Office JS API-settings.getItem不是函数,office-js,Office Js,我试图检索以前保存在同一会话中的文档中的设置,但是我得到的是settings.getItem不是函数 我正试图通过Chrome中的Word在线会话来实现这一点,并参考了文档,也看到了这一点(但我认为它不适合我的具体问题) 如前所述,保存设置工作正常,下载文件时可以看到设置已保存 我正在使用react+redux进行此操作,因此下面的代码段来自redux操作创建者: export function getSetting() { //this function tries to find a
settings.getItem不是函数
我正试图通过Chrome中的Word在线会话来实现这一点,并参考了文档,也看到了这一点(但我认为它不适合我的具体问题)
如前所述,保存设置工作正常,下载文件时可以看到设置已保存
我正在使用react+redux进行此操作,因此下面的代码段来自redux操作创建者:
export function getSetting() {
//this function tries to find a setting within the document
return function(dispatch, getState) {
window.Word.run(
function(context) {
let settings = Office.context.document.settings
var thisSetting
try {
console.log('attempting to find existing setting for ' + constants.ORG_ID)
thisSetting = settings.getItem(constants.ORG_ID)
console.log('got ' + thisSetting.value)
context.load(thisSetting)
} catch (error) {
thisSetting = null
console.log('couldn\'t find setting)
console.log(error.message)
}
return context.sync()
.then(
function() {
if (thisSetting) {
dispatch(requestSetThisSetting (thisSetting.value))
console.log('got setting ' + thisSetting.value)
}
}
)
}
)
}
}
关于如何成功检索设置有什么想法吗?
根据答案更新代码(如下)
我已经根据Rick和Juan提供的答案用工作代码更新了这篇文章(谢谢大家!)
看起来您在Word.run中混合了共享API Office.context.document.settings和Word特定API。看看特殊的Word包装器API(来自特定于Word的API的1.4版):。这是context.document.settings对象,但此处的“context”是传递给Word.run的Word.RequestContext对象,而不是Office.context对象。您的代码使用共享APIOffice.context.document.settings获取设置对象,但随后它调用getItem并从Word.RequestContext.document.settings加载方法 实际上,文件中的OOXML设置是相同的,但是通过两个不同的API访问它可能会有问题
更新:根据Juan Balmori的评论,以下是有关使用共享API读取设置的一些信息:。有关常见API和特定于主机的API之间区别的信息,请参见此处:。1.4正在预览中,因此我建议您使用共享API来检索设置。
export function getSetting() {
//this function tries to find a setting within the document
return function(dispatch, getState) {
let currentSetting = Office.context.document.settings.get(constants.ORG_ID)
console.log('current setting is ' + currentSetting)
if (currentSetting) dispatch(requestSetSetting(currentSetting))
}
}