Как удалить модель магистрали из коллекции localStorage

#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();         
        }
});