2011-07-19 26 views
1

我注意到,在BacbkoneJS中,Collection对象中有一个方法,允许您向该集合添加新模型,同时将新模型推送到服务器。这很方便,因为如果ajax请求成功,它只会将新模型添加到集合中。它还将使用从服务器返回的模型更新模型上的标识。BackboneJS,创建和销毁,但没有更新方法?

还有一个名为摧毁,如果AJAX请求返回200

我怎样才能做到与此类似与更新,在这里当我设置的数据,这只会破坏模型的模型对象类似的方法在我的模型上,它会尝试将模型保存到服务器,确保200状态,然后触发“更改”事件?

问题是如果我设置模型数据(我必须这样做才能调用save()),那么change事件会触发。

感谢

回答

1

的Backbone.Model.save()方法允许你指定要更改的属性。看看annotated source code,看起来“model.set()”发生在来自服务器的成功响应中。

所以,与其做

​​3210

myModel.save({this:"that"}); 

后成功保存更改事件应该触发。

注:我没有测试过这个 - 这只是从阅读源代码。

+0

我完全忽略了这个!非常感谢你=) –

+0

仔细看这个,它似乎设置模型并在保存到服务器之前触发change事件。所以即使服务器没有返回200,客户机型号仍然会更新..嗯 –

相关问题