更新
好的,所以我还在进入 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();
所以这行得通,没有问题。现在我添加一个集合,并从我的数据库中获取数据。所以我的获取代码,带有集合
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 移动到模型中,但效果相同。
这样做的主要目的是让我可以记录来自服务器的所有数据。当我设置几个不同的数据测试时,我非常喜欢这个插件保存数据的方式。
谢谢。
*请注意,我有阅读障碍,所以我可能没有正确解释自己,请告诉我是否有什么我可以重新措辞来更好地解释自己。感谢您的理解。