【问题标题】:backbone.LocalStorage with RequireJS骨干.LocalStorage 与 RequireJS
【发布时间】:2015-02-26 06:54:28
【问题描述】:

我正在尝试通过下面的安装来启动和运行主干 localStorage

https://github.com/jeromegn/Backbone.localStorage

但我不知道如何将它实际集成到我的应用程序中。我已经连接了我想在本地存储的集合(saved),但我不确定如何保存/获取模型(重新加载时)。

(function($){

        require.config({
            paths: {
                jquery: "//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js",
                underscore: "//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js",
                backbone: "//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js",
                localStorage: "backbone.localStorage.js"
            }
        });

        define('saved', ['localstorage'], function(){
            var saved = Backbone.Collection.extend({
                localStorage: new Backbone.LocalStorage('saved')
            });

            return saved;
        });

        //---------SINGLE ENTRY MODEL----------
                var Entry = Backbone.Model.extend({
                    defaults: function(){
                        return{
                            word: '',
                            definition: ''
                        }
                    }
                });

        //------------ENTRY MODEL COLLECTION------------
        EntryList = Backbone.Collection.extend({

                localStorage: new Backbone.LocalStorage('saved'),

                model: Entry
            });

        //-----INSTANCIATE COLLECTION----
        var dictionary = new EntryList();
        var saved = new EntryList();
        .
        .
        .

【问题讨论】:

    标签: javascript backbone.js underscore.js require


    【解决方案1】:

    实际上,当您执行以下操作时,您已经使用了 localStorage:

    //------------ENTRY MODEL COLLECTION------------
    EntryList = Backbone.Collection.extend({
        localStorage: new Backbone.LocalStorage('saved'),
        model: Entry
    });
    

    您正在从同一个集合中启动变量 dictionary 和 saved,我猜您只希望 saved 成为 localStorage?如果是,那么它不会是你所期望的。 这是因为当您在扩展 Backbone.Collection 的同时添加 localStorage: new Backbone.LocalStorage('saved') 属性时,该集合将永远使用 localStorage。

    要使用它来保存,您只需致电saved.create({ word: 'abc', definition: 'i dun know'}) 要获取保存的条目,只需 saved.fetch()

    源代码中的example 提供了很好的视图

    顺便说一句,您可以随时键入“localStorage”来检查它是否已启动或浏览器控制台上是否有任何数据(我正在使用 Chrome Devtool)

    【讨论】:

      猜你喜欢
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多