#backbone.js
#backbone.js
Вопрос:
Я создал несколько моделей, сохраненных в коллекции локального хранилища. Моя задача состоит в том, как удалить модель из коллекции в локальном хранилище, используя одно из значений атрибутов модели. Ниже приведен фрагмент моего кода:
var Food = Backbone.Model.extend({
defaults: {
title: '',
calories: 0,
date: '',
history: false
}
});
var Foods = Backbone.Collection.extend({
model: Food,
localStorage: new Backbone.LocalStorage('Health-Tracker')
});
my_foods = new Foods({});
var ls = new Backbone.LocalStorage('Health-Tracker');
var res = ls.findAll();
var n = res.length;
var i, id;
for (i = 0; i < n; i ) {
food = res[i];
id = food['id'];
title = food['title'];
calories = food['calories'];
date = food['date'];
history = food['history'];
//I am stuck here
if (history) {
ls.remove(food); // Not working
// I have also tried this
ls.remove(id); // not working
}
}
Обратите внимание, что для некоторых моделей в другом разделе больших кодов история успешно установлена в true. Выше приведено только то, где мне нужно предпринять действия, если значение истории равно true. И на данный момент это плохой код.
Любая помощь приветствуется
Комментарии:
1. Что такое
Backbone.LocalStorage
? Пожалуйста, предоставьте ссылку / документацию2.
Backbone.LocalStorage
не является частью официальной магистрали. и самый известныйBackbone.LocalStorage
плагин, похоже, не использует этот синтаксис. Похоже на какой-то внутренний код3. Backbone, localStorage позволяет нам определить папку в локальном хранилище для коллекции. Я получил часть решения из предыдущего вопроса в stackoverflow, см. jsfiddle.net/nikoshr/8pHNG Решение отлично работает при извлечении и отображении моделей, сохраненных в localstrorage. Но это не зашло далеко, изменив атрибут модели, уничтожив модель. Сейчас меня это беспокоит.
Ответ №1:
Обратите внимание, что это приложение не использует сервер для хранения / извлечения данных. Все модели хранятся в локальном хранилище. Использование findAll() и remove(), которые я использовал выше для удаления из localstorage, является очень долгим процессом. Для удаления моделей из локального хранилища было добавлено следующее:
my_foods.fetch();
my_foods.models.forEach(function(food){
day = food.get('day');
new_day = get_new_day();// this function isn't included above
if (new_day > day) {
food.destroy();
}
});