赢得8个应用程序:在漫游文件夹中保存和检索数据

时间:2013-03-13 18:42:08

标签: windows-8 windows-runtime winjs

我正在尝试使用JavaScript将少量用户数据存储到应用程序中的Windows Storage的roamingFolder方法/属性中。我正在关注开发中心的示例代码,但没有成功。我的代码段如下:(完整项目的OR SkyDrive链接:https://skydrive.live.com/redir?resid=F4CAEFCD620982EB!105&authkey=!AE-ziM-BLJuYj7A

filesReadCounter: function() {
roamingFolder.getFileAsync(filename)
    .then(function (filename) {
        return Windows.Storage.FileIO.readTextAsync(filename);
    }).done(function (data) {
        var dataToRead = JSON.parse(data);
        var dataNumber = dataToRead.count;
        var message = "Your Saved Conversions";
        //for (var i = 0; i < dataNumber; i++) {
        message += dataToRead.result;
        document.getElementById("savedOutput1").innerText = message;
        //}
        //counter = parseInt(text);
        //document.getElementById("savedOutput2").innerText = dataToRead.counter;
    }, function () {
        // getFileAsync or readTextAsync failed.
        //document.getElementById("savedOutput2").innerText = "Counter: <not found>";
    });
},

filesDisplayOutput: function () {
    this.filesReadCounter();
}

我在navigator模板的item.js文件的ready方法中调用filesDisplayOutput函数,以检索最后一个会话的数据。但它总是显示空白。我想保存用户可能需要保存的最多5个数据。

1 个答案:

答案 0 :(得分:0)

我在运行代码时遇到了一些问题,但这与问题相关。最重要的是,你实际上并没有读取文件。请注意此代码,当履行承诺时,不会执行thendone

  

返回Windows.Storage.FileIO.readTextAsync(filename);

我在你的示例解决方案中攻击了它并且它正在工作......这个典型的警告不是生产代码:)

filesReadCounter: function () {
        roamingFolder.getFileAsync(filename).then(
            function (filename) {
                Windows.Storage.FileIO.readTextAsync(filename).done(
                    function (data) {
                        var dataToRead = JSON.parse(data);
                        var dataNumber = dataToRead.count;
                        var message = "Your Saved Conversions";
                        //for (var i = 0; i < dataNumber; i++) {
                        message += dataToRead.result;
                        document.getElementById("savedOutput1").innerText = message;
                        //}
                        //counter = parseInt(text);
                        //document.getElementById("savedOutput2").innerText = dataToRead.counter;

                    }, function () {

                        // readTextAsync failed.
                        //document.getElementById("savedOutput2").innerText = "Counter: <not found>";
                    });
            },
            function () {
                // getFileAsync failed 
            })
    },