【发布时间】:2017-01-17 05:18:10
【问题描述】:
我正在使用 Ionic 2 Storage 来保存表单数据。我这样保存数据:
this.storage.set(key, JSON.stringify(formData));
然后我像这样检索并尝试更新数据:
this.getReport(key).then((report) => {
var objReport = JSON.parse(report);
objReport.push(data); //this is the problem
this.storage.set(pk, JSON.stringify(objReport));
});
getReport 就是这样:
getReport(key) {
return this.storage.get(key);
}
所以我知道 .push 用于数组而不是对象,但我认为进行所有这些转换并不高效,因为我正在处理大型对象。
我的问题是:从存储中检索 json 并附加到它的最有效方法是什么?如果对象没有像数组这样的推送方法,那么 .parse 返回一个对象对我来说毫无意义。
这是错误:
运行时错误未捕获(承诺中):TypeError:无法读取属性 未定义类型错误的“推送”:无法读取属性“推送”的 未定义
【问题讨论】:
-
如果你的'report'存储为'json'对象,你会在json.parse()之后得到一个json对象。如果您已将“报告”存储为“数组”对象,您将在 json.parse() 之后返回一个数组对象。此上下文中的“对象”是一个 javascript 对象,可以是数组或普通对象的格式。
标签: javascript json ionic2