Backbone使用LocalStorage保存获取的数据库数据?

时间:2015-03-18 10:24:10

标签: javascript backbone.js backbone-local-storage

更新

好的,所以我仍然进入Backbone的世界。但是我在将localStorage添加到模型中时遇到了问题。

所以这很有意思,但我不知道发生了什么事?

var Model = Backbone.Model.extend({
    //localStorage: new Backbone.LocalStorage("SomeCollection"),
    url: "/GetMyData",
    defaults: {
        "id": "",
        "datatest1": "",
        "test2": ""
    }
});

var NewTest = new Model();
NewTest.fetch();

console.log ( NewTest ); //This as DB data
console.log ( NewTest.attributes ); //This is empty

'属性'在第一个console.log包含数据库数据,然后第二个完全为空?第一个console.log也是空的,如果我取消注释localStorage,那么我正在拜访我做错了什么?


好的,我不确定我做错了什么,但是我正在使用Backbone和一个fetch调用,使用LocalStorage插件保存该id。现在我有fetch调用和LocalStorage分开工作但无法让它们一起工作。

所以我的LocalStorage代码

var Model = Backbone.Model.extend({
    localStorage: new Backbone.LocalStorage("SomeCollection"),
    defaults: {
        "id": "",
        "datatest1": "",
        "test2": ""
    }
});

var NewTest2 = new Model();

NewTest2.set({
    "id": "99",
    "datatest1": "TEST-1-Q22",
    "test2": "TEST-2-CL22"
});

NewTest2.save();

所以这个有效,没问题。现在我添加一个集合,并从我的数据库中获取数据。所以我的fetch代码,带有集合

var Model = Backbone.Model.extend({
    defaults: {
        "id": "",
        "datatest1": "",
        "test2": ""
    }
});

var Col = Backbone.Collection.extend({
    model: Model,
    url: "/GetMyData"
});

var NewTest3 = new Col();

NewTest3.fetch();

console.log( NewTest3 );

我还应该说我使用PHP Slim作为基础。 /GetMyData路径通过PDO连接从MySQL数据库获取数据,然后我将其转换为Backbone的JSON对象。

我认为这很好,因为一切正常,console.log的属性列表会在我的数据库中显示正确的数据。

现在,当我把两者放在一起时,我似乎无法让它发挥作用。

var Model = Backbone.Model.extend({
    defaults: {
        "id": "",
        "datatest1": "",
        "test2": ""
    }
});

var Col = Backbone.Collection.extend({
    localStorage: new Backbone.LocalStorage("SomeCollection2"),
    model: Model,
    url: "/GetMyData"
});

var NewTest4 = new Col();
NewTest4.fetch();

console.log( NewTest4.save() );

console.log返回Uncaught TypeError: undefined is not a function。所以我不确定为什么?当我在第一次测试中设置数据时,它工作正常。现在我也尝试将localStorge var移动到模型中,但效果相同。

这样做的主要目的是让我可以记录来自服务器的所有数据。当我设置几个不同的数据测试时,我非常喜欢这个插件保存数据的方式。

感谢。

*请注意,我是阅读障碍者,所以我可能没有正确解释自己,请告诉我是否有什么我可以重新说出来更好地解释自己。谢谢你的理解。

0 个答案:

没有答案