2016-07-21 8 views
1

리본 명령 함수에서 Office.context.document.settings에 저장된 내 설정에 액세스하려고합니다.리본 함수 파일 및 작업 창에서 Office.context.document.settings에 액세스

Task-Pane에 의해 저장되었지만 Functionfile에서 액세스 할 수있는 것 같지 않습니다. 다른 작업 창에서 액세스 할 수 있습니다.

그러나 Functionfile에 설정을 저장할 수 있지만 Task-Panes에서도 설정에 액세스 할 수 없습니다.

이 내용은 문서화되어 있지 않습니다. FunctionFile과 작업 창간에 설정을 어떻게 전송할 수 있습니까? 내 작업 창에서

,이 같은 내 설정을 저장 :

  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')); 
       } 
      }); 

나는 다른 작업 창에서이 완벽하게 정상적으로 액세스 할 수있는 라인과 자바 스크립트 파일

그러나
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"); 
});