2013-12-04 3 views
0

Итак, я погрузился в фреймворк Backbone.js, и я наконец дошел до того момента, когда я играю с моделями/коллекциями.Создайте более приятный идентификатор из localstorage/collections

Вот что. Я использую LocalStorage в качестве базы данных и моя проблема в том, что я не statisfied видеть мою иду выглядеть следующим образом:

id : "53ec77a0-8b06-c31b-d72c-a350741898d0" 

Есть ли простое решение установить идентификатор, чтобы более правильного взгляд, как 1, 2 , 3 или даже как cid. Я пробовал это с помощью cid, но это не хорошо, потому что он меняется каждый раз, когда вы извлекаете данные из localstorage ...

Заранее благодарен!

/Харис

ответ

1

Ммм, я не знаю, почему вы хотите сделать это, это действительно работа адаптера, чтобы определить идентификаторы, и обеспечить их уникальность, а не ваша!

Если вы посмотрите на код LocalStorage Магистральная, вы можете увидеть линию, создавая свои вопросы здесь:

create: function(model) { 
    if (!model.id) { 
     model.id = guid(); 
     model.set(model.idAttribute, model.id); 
    } 
    ... 
    } 

Итак, два пути идти о том, что:

  1. Вилка backbone localstorage, чтобы заменить вызов guid() (который просто генерирует случайные идентификаторы, он не пытается обеспечить уникальность) чем-то более приятным.

  2. Дайте свой идентификатор перед вызовом save(). Для localstorage это приемлемо, поскольку на идентификаторы нет реальных ограничений, но тогда ваша работа должна стать уникальной, особенно при многократном запуске вашего приложения [закрытие + повторное открытие браузера] (вы можете сохранить lastId в ваше местное хранилище и увеличивайте его каждый раз, чтобы заставить его вести себя как первичный ключ с автоинкрементами в БД, я думаю)

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