0

JavaScript を使用するアプリで、いくつかのユーザー データを Windows ストレージの roamingFolder メソッド/プロパティに格納しようとしています。デベロッパー センターのサンプル コードに従っていますが、成功しません。私のコード スニペットは次のとおり です

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

最後のセッションのデータを取得するために、ナビゲーター テンプレートの item.js ファイルの ready メソッド内で filesDisplayOutput 関数を呼び出しています。しかし、常に空白が表示されます。ユーザーが保存する必要があるデータを 5 つまで保存したいと考えています。

4

1 に答える 1

0

コードをそのまま実行するのに問題がありましたが、それは質問に接しています。要するに、実際にファイルを読んでいるわけではありません。このコードに注意してください。約束が果たされたときに実行するthenorはありません。done

Windows.Storage.FileIO.readTextAsync (ファイル名) を返します。

私はあなたのサンプルソリューションでこれをハッキングしましたが、それは機能しています...これの典型的な警告はプロダクションコードではありません:)

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 
            })
    },
于 2013-03-14T00:47:34.553 に答える