Вы не должны звонить по этому номеру $(document).ready
. Это только говорит о том, что DOM загружен, но не говорит о том, что ваша надстройка подключена к приложению Office.
Вместо этого вам нужно сделать это из метода Office.initialize
. Этот метод запускается после того, как Office готов для вашей надстройки. В этот метод можно добавить дополнительную проверку для $(document).ready
, чтобы убедиться, что DOM также загружен:
Office.initialize = function() {
$(document).ready(function() {
// Your code here
});
};
Вы также должны убедиться, что ваша коллекция настроек заполнена, прежде чем пытаться получить доступ к элементам в коллекции. Это делается путем вызова refreshAsync
перед чтением из коллекции настроек:
Office.initialize = function() {
$(document).ready(function() {
// Populate the settings collection
Office.context.document.settings.refreshAsync(function(asyncResult) {
// Read your setting
let mySetting = Office.context.settings.get("mysetting");
// Since this setting may not exist, check it before assigning
if (mySetting) $("#myDomElement").val(mySetting);
});
});
};
Кроме того, убедитесь, что вы звоните saveAsyn
после установки значения. Office не будет автоматически сохранять настройки, вам нужно явно указать, когда записывать эти настройки обратно в документ.