第一次在这里张贴...期待看到它如何运作,但非常感谢阅读其他问题&答案。
我正在使用一个小应用程序的主干,并发现使用集合存储一些仅在当前会话期间需要的信息是有帮助的。 (我有许多集合,其他所有集合都连接到我的API来存储/检索数据)。
我在这里阅读(in backbone.js can a Model be without any url?)这是可能的,甚至可以在不提供网址的情况下使用集合。
现在我想在集合中添加一行数据......简单:
myCollection.create(data);
但当然现在会抛出错误:
Uncaught Error: A "url" property or function must be specified
有没有办法使用Backbone集合,能够向其添加新的数据行(模型),但不能同步到任何类型的数据源。或者你能提出另一个解决方案。
我想我可以使用一个对象来保存数据,但我很享受一致性和功能。
如果有任何影响,我正在使用Backbone.Marionette。
提前致谢。
答案 0 :(得分:17)
您可以做的一件事是覆盖与服务器通信的Backbone.Model
方法,例如sync
,fetch
和save
...例如:
var App = {
Models: {},
Collections: {}
};
App.Models.NoUrlModel = Backbone.Model.extend({});
App.Models.NoUrlModel.prototype.sync = function() { return null; };
App.Models.NoUrlModel.prototype.fetch = function() { return null; };
App.Models.NoUrlModel.prototype.save = function() { return null; };
App.Collections.NoUrlModels = Backbone.Collection.extend({
model: App.Models.NoUrlModel,
initialize: function(){}
});
var noUrlModels = new App.Collections.NoUrlModels();
noUrlModels.create({'foo': 'bar'}); // no error
// noUrlModels.models[0].attributes == {'foo': 'bar'};