我确定这是一个非常常见且基本的 Backbone 问题,但我找不到答案
我想在每次更改后保存一个模型,除了从服务器的初始获取。
例如:
MyModel = Backbone.Model.extend({
url: "myModelUrl",
initialize: function () {
this.on("change", this.save, this);
}
});
获取时,由于它有一些数据,我得到一个更改事件,然后再次触发保存
var myModel = new MyModel({id:"123"});
myModel.fetch();
有没有办法避免第一次提取时的第一次保存?(例如,如果模型是刚刚获取的,不要保存)
难道唯一的方法是引导模型吗?
例如,根据文档,这真的是唯一的方法吗?
请注意,不应在页面加载时使用 fetch 来填充集合——加载时所需的所有模型都应该已经引导到位。fetch 旨在为不需要立即需要的接口延迟加载模型:例如,具有可以切换打开和关闭的注释集合的文档。
编辑:
我在引导程序中看到的一个问题是 - 似乎我必须在页面加载时获取我的整个集合,我不能只获取其中的一小部分。为什么?因为如果我的路由使用哈希标记,则在页面刷新时,服务器端将不知道我在哪个路由中(哈希部分不会发送到服务器)。例如,只有当我使用 pushState: true 我才能在页面刷新时引导正确的模型/集合,我是否遗漏了什么?