Я не могу получить backbone.localstorage.js, чтобы правильно удалить элемент

Вот пример кода, над которым я работаю:

Я могу создать объект локального хранилища и сохранить его.

var FoodJournalDay = Backbone.Collection.extend({
    model: Food,
    localStorage: new Backbone.LocalStorage("foodjournal")
});

Однако я не могу удалить запись localalstorage.

var App = Backbone.View.extend({

    el: 'body',

    events: {
        "input #searchBox" : "prepCollection",
        "click #listing li" : "track",
        "click #save": "saveClicked",
        "click #savefoodday": "savefoodClicked",        
        "click .destroy": "destroy"
    },

    initialize: function () {

        this.model = new SearchList();
        this.foods = new AllFoods();
        this.journal = new FoodJournalDay();

        this.model.on('destroy', this.remove, this);
        this.listenTo(this.journal, 'destroy', this.renderfoods);

        this.foods.fetch();

    },

    saveClicked: function() {
        this.listenTo(this.journal, 'add', this.renderfoods);        

        this.journal.create(new Food({
            id: foodid,
            title: item_name,
            brand: brand_name,
            calories: calorieAmt,
            fat: fatAmt,
            sodium: sodiumAmt,
            protein: proteinAmt,
            carbs: carbsAmt,
            sugar: sugarAmt,
            html: trackedhtml
        }));
    },

    destroy: function (e) {

        var model = new FoodJournalDay({ id: id });
        this.journal.remove();
    },



    var app = new App();
});

Вот js скрипка приложения: https://jsfiddle.net/brettdavis4/3sy61zaj/1/

1 ответ

Решение

Вам нужно получить существующую модель из коллекции по идентификатору, а затем destroy() Это. Который удалит его из коллекции и localStorage.

this.journal.get(id).destroy();

https://jsfiddle.net/guanzo/3sy61zaj/2/

Другие вопросы по тегам