Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将模型添加到Backbone.localstorage集合_Javascript_Backbone.js_Local Storage_Backbone Local Storage - Fatal编程技术网

Javascript 将模型添加到Backbone.localstorage集合

Javascript 将模型添加到Backbone.localstorage集合,javascript,backbone.js,local-storage,backbone-local-storage,Javascript,Backbone.js,Local Storage,Backbone Local Storage,我正在尝试向集合添加一个模型,该集合将通过Backbone.localstorage插件存储在本地存储中 在集合中添加模型的代码如下所示: define([ 'jquery', 'underscore', 'model/articleModel', 'backbone', 'localstorage' ], function($, _, itsModel, Backbone) { var articleCache = Backbone.Collection.extend({

我正在尝试向集合添加一个模型,该集合将通过Backbone.localstorage插件存储在本地存储中

在集合中添加模型的代码如下所示:

define([ 'jquery', 'underscore', 'model/articleModel', 'backbone', 'localstorage' ],     function($, _, itsModel, Backbone) {
    var articleCache = Backbone.Collection.extend({
        model: itsModel,
        localStorage: new Backbone.LocalStorage("articles-backbone-cache"),

        addArticle: function(model){
            console.log('Adding new article ID [' + model.id + '] Title [' + model.title     + '] to cache via backbone.localstorage');
            console.log(model);

            //CRUCIAL PART
            this.create(model); // Doesn't work
            this.create(model.toJSON()); //Doesn't work
            this.create({id: model.id}); // Works but only id is saved and naturally all other attributes are set to defaults
        }
    });

    return articleCache;
});
模型是:

define([ 'jquery', 'underscore', 'backbone', 'localstorage' ], function($, _, Backbone) {

    var article = Backbone.Model.extend({
        defaults : {
            id : '0',
            title : '',
            subtitile : '',
            date : '',
            section : '',
            section_id : -1,
            subsection : null,
            subsection_id : null,
            noOfComments : 0
    });

    return article;
});
问题是模型没有保存到本地存储。当我使用它时,它只保存到本地存储;但缺少所有其他属性

传递给addArticlemodel的模型与它期望的模型相同,有人能就如何将此数据持久化到本地存储提供一些帮助吗

我不想写以下内容,因为它已经是那种形式了:

this.create({id: model.id, title:model.title, . . . })
使用“添加”而不是“创建”

collection.createattributes[选项]


collection.addmodels,[options]

要将模型添加到集合中,应使用添加功能

这会将模型添加到集合中,但本地存储尚未同步

要将添加的模型持久化到localStorage,必须调用model.save


确保所有型号都有id和不同的id。检查并检查。我试图保存到此集合的模型是使用普通主干REST调用从远程服务器检索的。所以所有的ID都是唯一的,并且不是空的/未定义的。我尝试过使用add,但也不起作用。另外,根据创建方法,应该在本地存储插件的情况下使用。编辑:使用add在我在原始问题中概述的所有3种情况下都失败。你能创建一个小提琴来演奏吗。