2016-07-09 3 views
0

Мне нужно увеличить значение ключа, когда я сохраняю данные в localstorage, потому что, когда я нажимаю кнопку кнопки, то же самое для всех записей и записи просто обновляется, не создает новых. Я знаю, что могу сделать это с закрытием бит, который я свеж в JS, и не знаю, как это сделать правильно.Увеличение значения ключа для сохранения данных в localstorage

(function() { 

window.onload = function() { 
    document.getElementById('buttonCreate').onclick = function() { 
     var topicValue = document.getElementById("create-topic").value; 
     var statusValue = document.getElementById("create-status").value; 
     var descriptionValue = document.getElementById("create-description").value; 
     var key = 0; 
     var storage = new Storage(); 
     var ticket = { 
      topic: topicValue, 
      status: statusValue, 
      description: descriptionValue 
     }; 
     storage.set(key, ticket); 
     return (function() { 
      key++; 
      return key; 

     }()); 
    } 
} 

})(); 

function Storage() { 
    this._ITEMS_DESCRIPTOR = 'items'; 
} 
Storage.prototype.get = function() { 
    var fromStorage = localStorage.getItem(this._ITEMS_DESCRIPTOR); 
    return fromStorage ? JSON.parse(fromStorage) : []; 
}; 
Storage.prototype.set = function(key, items) { 
    localStorage.setItem(key, JSON.stringify(items)); 
}; 
+0

В качестве первого шага вам необходимо отформатировать код, чтобы он был более читабельным. (ex http://www.danstools.com/javascript-beautify/) –

+0

Вам нужно сохранить hasTicket = true или false, if (hasTicket) // обновить else, помещенную в Storage.Why не пытайтесь это сделать? –

+0

Я не вижу замыкания в вашем коде, только ненужные вызовы, вызываемые немедленно, без переменных замыкания .. также неясно, нужно ли увеличивать ключ только в течение 1 сеанса или между сеансами => читать последний ключ в хранилище до установки новый ключ – Aprillion

ответ

-1

Вам необходимо объявить переменную перед функцией, чтобы сохранить значение и добавить 1+.

(function() { 

    window.onload = function() { 
    var key = 0; //move var key to here 
    document.getElementById('buttonCreate').onclick = function() { 
     var topicValue = document.getElementById("create-topic").value; 
     var statusValue = document.getElementById("create-status").value; 
     var descriptionValue = document.getElementById("create-description").value; 
     // var key = 0; remove these line 
     var storage = new Storage(); 
     var ticket = { 
     topic: topicValue, 
     status: statusValue, 
     description: descriptionValue 
     }; 
     storage.set(key, ticket); 
     return (function() { 
     key++; 
     return key; 

     }()); 
    } 
    } 

})(); 
+0

, это не сработает –

+0

@ R.Proz создайте код и покажите мне полный код –

Смежные вопросы