Хм....сейчас сам попытался опять изменить...выводило..попроб вал добавить функцию добавления поста при клике...Но, посты перестали выводится, а в хранилище появилось:
post_id_NaN =>[""]
post_id_undefined=>""
post_ids=>NaN
И в итоге посты не выводятся(
Вот весь код:
// JavaScript Document
$(document).ready(function(){
//$.getJSON(
// 'json/posts.json',
// function(data){
//var prefix = "post_id", postsIds_key = "post_ids";
var post, postIds, prefix = "post_id_", postsIds_key = "post_ids";
// postIds = $.map(data, function (post) {
// var stringified = JSON.stringify(post);
// localStorage.setItem(prefix + post.id, stringified);
// return post.id;
// });
postIds = JSON.stringify(postIds); // в принципе, можно было и join'ом
//localStorage.setItem(postsIds_key, postIds);
//$.each(data, function(postIndex, post) {
// localStorage.setItem('post_id'+post['id'], JSON.stringify(post));
// posts += localStorage['post_id'+post['id']];
//})
// prefix определён выше.
// postsIds_key тоже определён выше.
postIds = localStorage.getItem(postsIds_key);
if (postIds) {
postIds = JSON.parse(postIds);
posts = $.map(postIds, function (postId) {
var post;
post = localStorage.getItem(prefix + postId);
post = JSON.parse(post);
return post;
});
} else {
$.getJSON(
'json/posts.json',
function(data){
postIds = $.map(data, function (post) {
var stringified = JSON.stringify(post);
localStorage.setItem(prefix + post.id, stringified);
return post.id;
});
});
localStorage.setItem(postsIds_key, postIds);
}
$.each(posts, function(entryIndex, entry) {
var html = '<article><header><h3>';
html += entry['title']+'</h3></header><section><p>';
html += entry['body']+'</p></section><footer>';
if(entry['tags']){
html += '<div id="tags">';
$.each(entry['tags'], function(tagIndex, tag){
html += '<span class="label">' + tag + '</span>'
});
html += '</div><div class="controls"><a class="btn btn-danger btn-mini">удалить</a></div>';
}
html += '</footer></article>';
$('#posts').append(html);
});
//});
//Добавление поста
$('button[type="submit"]').click(function(){
var post ={
title: $('#zagol').val(),
body: $("#body").val(),
tags: $('#tags').val()
}
postIds = $.map(post, function (post) {
var stringified = JSON.stringify(post);
post.id = postIds ? postIds[postIds - 1] + 1 : 0;
localStorage.setItem(prefix + post.id, stringified);
return post.id;
});
postIds = JSON.stringify(postIds);
localStorage.setItem(postsIds_key, postIds);
});
});