您好我在LocalStorage中有一个数据作为JSON字符串:
[
{"Date":"28/04/2016","Time":"08:00","Title":"Title 1"},
{"Date":"28/04/2016","Time":"08:30","Title":"Title 2"}
]
我的 module.factory 看起来像是:
module.factory('$schedule', function() {
var schedule = {};
var result = JSON.parse(localStorage.getItem('myAgenda'));
schedule.items = [{
title: result.Title,
date: result.Date,
time: result.Time
}];
return schedule;
});
当我尝试获取数据时,它返回undefined。当我尝试获取特定对象时:
console.log(result[0].Title);
它工作正常,只显示第一个元素。我想我错过了每个定义,但不知道该怎么做。请帮助我在 schedule.items 中获得所有结果。
我将结果作为项目传递给:
module.controller('ScheduleController', function($scope, $schedule) {
$scope.items = $schedule.items;
});
非常感谢。
答案 0 :(得分:1)
您应该使用.map
覆盖数组,并在数组的最后一个元素中添加缺少的}
。
var schedule = [];
//assuming result returns an array.
schedule = result.map(function(value){
return {
title: value.Title,
date: value.Date,
time: value.Time
};
})
答案 1 :(得分:1)
您正在尝试访问数组中的字段,而不提及您要访问的数组元素。如果要枚举所有议程条目并将它们添加到数组中,它应该如下所示:
module.factory('$schedule', function () {
var schedule = [];
var result = JSON.parse(localStorage.getItem('myAgenda'));
result.forEach(function (date) {
schedule.push({
title: date.Title,
date: date.Date,
time: date.Time
})
})
return schedule;
});
答案 2 :(得分:0)
不熟悉module.factory,但看起来result是一个对象数组,你在创建schedule.items时就像一个对象一样访问它。
您可能必须迭代数组并在结果中为每个对象创建一个项目。