Javascript 要存储到漫游数据存储中的应用程序设置

Javascript 要存储到漫游数据存储中的应用程序设置,javascript,windows-8,windows-runtime,winjs,application-settings,Javascript,Windows 8,Windows Runtime,Winjs,Application Settings,我在“设置”窗格的“设置Lyout控件”中实现了一个条目。页面本身包含一个下拉列表。用户从此下拉列表中选择的任何选项都需要存储在漫游数据存储中。显然,每当用户在“设置”窗格中访问此页面时,都需要检索存储的数据。我不确定在什么地方编写这段数据阶段和检索代码最好?我看到SettingsFlyout对象有onafterhide、onaftershow、onbeforehide和onbeforeshow事件。是否应将其中任何一项用于此目的?在“设置”弹出按钮中更改的设置应在用户进行更改后立即生效,而不是

我在“设置”窗格的“设置Lyout控件”中实现了一个条目。页面本身包含一个下拉列表。用户从此下拉列表中选择的任何选项都需要存储在漫游数据存储中。显然,每当用户在“设置”窗格中访问此页面时,都需要检索存储的数据。我不确定在什么地方编写这段数据阶段和检索代码最好?我看到SettingsFlyout对象有onafterhide、onaftershow、onbeforehide和onbeforeshow事件。是否应将其中任何一项用于此目的?

在“设置”弹出按钮中更改的设置应在用户进行更改后立即生效,而不是等到弹出按钮隐藏后才生效。我建议将您的弹出按钮视为页面控件

假设您的设置弹出按钮是在
settings/mySettings.html
中定义的,创建一个名为
settings/mySettings.js
的JavaScript文件,并在设置页面的头部引用它。然后将以下代码添加到脚本文件中

(function () {
    "use strict";

    var page = WinJS.UI.Pages.define("/settings/mySettings.html", {
        ready: function (element, options) {
            // wire up event handlers for saving changes
            // setup initial state
        },
    });
})();

与任何其他页面控件一样,可以在ready函数中添加事件处理程序并初始化页面。如果您熟悉导航应用程序模板,则相同。

[Windows.Storage.ApplicationData.Current.localSettings]()或roamingSettings提供获取/设置键值对的内置支持。它还处理对应用程序数据文件夹中文件的持久化。它还按照文件要求进行批处理

您可以在中找到参考代码


关于,弹出按钮上的事件-在弹出按钮隐藏之前/之后,可以使用这些事件在整个用户流中执行某些操作。例如,我曾经围绕signin弹出按钮创建了一个承诺
afterhide
用于调用承诺的错误回调,错误被取消。

感谢您的回复。这是有道理的。您知道应该使用onafterhide、onaftershow、onbeforehide和onbeforeshow事件的用例吗?我不需要使用它们,所以我会编造用例。但简而言之,这些事件允许您从弹出按钮本身外部处理弹出按钮的显示或隐藏。假场景:如果您触发了按钮的弹出按钮,您可能会使用onafterhide对包含该按钮的屏幕进行一些更改?
var roamingSettings = Windows.Storage.ApplicationData.current.roamingSettings;
function settingsWriteSetting() { 
    roamingSettings.values['my setting'] = 'my setting value'; 
}