2016-07-21 164 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"); 
});