我正在尝试使用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个数据。
答案 0 :(得分:0)
我在运行代码时遇到了一些问题,但这与问题相关。最重要的是,你实际上并没有读取文件。请注意此代码,当履行承诺时,不会执行then
或done
。
返回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
})
},