Lawnchair.js未更新数据
Lawnchair.js not updating data
我有一个用于本地存储数据的"LocalStore"对象。它是基于一个朗查尔物体。
var LocalStore = function(name) {
var that = this;
that.name = name;
that.lawnchair = Lawnchair({ name: that.name }, function(store) {
this.before('save', function(record){
console.log("saving " + that.name);
console.log(record);
});
this.after('save', function(record){
console.log("saved " + that.name);
console.log(record);
that.getData(function(records){
console.log("now it's this");
console.log(records);
});
});
});
that.getData = function(callback) {
that.lawnchair.get(that.name, callback);
};
};
然后用_.extend
(来自Undercore.js库)通过以下方法扩展LocalStore:
save: function(collection, callback) {
this.lawnchair.save({ key:this.name, value: collection }, function(record) {
callback(record);
});
}
此代码用于将Backbone.js Collection对象更新为Lawnchair。第一次为我的用户集合运行"save"时,它会正确保存,并显示对象是一个简单的键/值对,其中值是一个数组。
稍后在我的代码中,当用户选择默认项目时,我会修改用户集合,并在用户上使用更新的"defaultProjectId"再次调用"save"。该代码运行时没有错误,但Lawnchair的after('save')
代码运行并向我显示:
-返回的record
对象是一个键/值对,其中value是一个完整的Backbone.js集合,defaultProjectId属性设置正确
-从数据库获取最新数据的getData
方法仍然显示为键值对,其值为simple Array,defaultProjectId设置不正确。
我不知道该怎么办。它应该只是简单地调用"lawnchair.save"来更新记录,但它就是做不到。
你能试试这个jsfiddle吗?
http://jsfiddle.net/QUgtg/1/
我已经重新创建了您的代码。我传递的不是主干集合,而是一组对象。这似乎奏效了。您可以在Firebug中看到日志输出。
我使用了自己的扩展代码来添加save()
。尽管说实话,我不明白你为什么要这样做,而不是只是在原型中添加一个属性。您的代码可能在这方面有所不同。
如果我发布的内容对你有效,你能修改代码以显示你的不同之处吗?如果可能的话,在jsfiddle上重新创建问题。。。
- 平均值:无法将数据更新到数据库
- d3在数据更新时错误地附加了dom元素
- 使用角度传递的数据更新模态
- jQuery使用XML数据更新UL列表
- ng表DOM未使用数据更新进行更新
- 在线/离线数据更新移动最佳实践
- 使用 预测 API 数据更新的 HTML 模板
- JQuery 数据表列数据更新工作太慢
- 使用Plotly中的新数据更新图形的高性能方法
- 使用新数据更新 D3 饼图.json
- jQuery - 使用相同的数据更新 2 个或多个表单字段
- 如何在数据更新时更新可重用的 d3.js 图形
- 组合框/下拉框在数据更新后未更新
- 在 JavaScript 中的数据更新后,我的 DOM 对象不会更新
- 如何使用来自外部源的数据更新 ng 模型
- 主干.js:使用不同的数据更新集合
- 对数据库进行 AJAX 编辑时,我是否应该立即使用新数据更新接口
- 计划脚本以使用外部数据更新数据库
- 使用从 MongoDB 获取的新数据更新对象属性
- 如何每 n 分钟使用数据更新一次 Web 应用程序