gpt4 book ai didi

javascript - Backbone - 将模型更改保存到本地对象

转载 作者:行者123 更新时间:2023-12-02 17:26:18 25 4
gpt4 key购买 nike

我正在构建一个应用程序,它将加载 JSON 文件并使用它来填充所有模型。我必须保留更改列表,然后在单击“发布”按钮后将其发布回服务器。

我认为使用 Backbone.LocalStorage 和使用模型更改事件来跟踪哪些模型发生更改的组合听起来不错,但听取走这条路线或解决类似问题的人的意见会有所帮助!

这种方法有意义吗?还有更好的吗?

最佳答案

如果您试图跟踪各个更改而不仅仅是保存之前的最终状态,那么创建一个 Audit 模型或类似的模型可能是一个好主意。您可以按照您的建议 Hook change 事件。只要您愿意,可以使用 Backbone.sync 的标准版本(或一些批量修改)将这些 Audit 模型保存到服务器。该模型可能看起来像这样:

var Audit = Backbone.Model.extend({
defaults : {
auditableType: "", auditableId: null, auditedChanges : ""
},
paramRoot : "audit"
});
var Audits = Backbone.Collection.extend({
model : Audit
});

然后创建一个模型原型(prototype),所有审核的模型都可以从中扩展:

var audits = new Audits();
var AuditedModel = Backbone.Model.extend({
initialize : function (options) {
this.listenTo(this, "change", function (model, options) {
audits.add({
auditableType : this.paramRoot,
auditableId : this.id,
auditedChanges : this.changed
});
});
}
});

现在只需从您的 AuditedModel 扩展您想要跟踪更改的任何模型即可。

var User = AuditedModel.extend({
paramRoot : "user",
// Do whatever
});

关于javascript - Backbone - 将模型更改保存到本地对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23481241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com