2016-07-21 128 views
1

我想从功能区命令功能访问存储在Office.context.document.settings中的设置。从功能区功能文件和任务窗格访问Office.context.document.settings

它们已被存储在任务窗格中,但似乎无法通过功能文件访问。它们可以被其他任务窗格访问。

另一方面,我可以将设置存储在函数文件中,但也不能从任务窗格访问它们。

这没有记录。如何在FunctionFile和Task-Panes之间传输设置?

在我的任务窗格中,我存储我的设置是这样的:

  Office.context.document.settings.set('sheet_backup', "foo"); 

      Office.context.document.settings.saveAsync(function (asyncResult) { 
       if (asyncResult.status == Office.AsyncResultStatus.Failed) { 
        console.log('Settings save failed. Error: ' + asyncResult.error.message); 
       } else { 
        console.log('Settings saved.'); 
        console.log(Office.context.document.settings.get('sheet_backup')); 
       } 
      }); 

我可以从另一个任务窗格访问此完美的罚款javascript文件与线

console.log(Office.context.document.settings.get('sheet_backup')); 

然而,当我使用在清单中我已声明为我的功能文件的文件中的相同行...

它只是返回null

+0

更新了主要帖子,其中包含代码片段和关于'FunctionFile'的说明。 – moejoe

回答

2

设置可能在功能文件中不可用,因为它们需要在功能文件的上下文中刷新以获取文档中保留的最新值。设置对象上的refreshAsync API允许您执行此操作。它将基本上强制刷新可用于您的函数文件的内存设置对象,并使用文档中的最新值。这样做后,你应该能够阅读它们。请尝试以下代码:

Office.context.document.settings.refreshAsync(function (asyncResult) { 
    var taskpaneVal = asyncResult.value.get("backgroundColor"); 
});