这是我的问题,在我的应用程序上,两个不同的视图用相同的id实例化相同的模型。我希望2个模型是相同的或同步(火灾事件的变化)。有什么想法吗?
我看了一下Backbone-relational,但人们对此抱怨太多了。
发布于 2014-01-10 01:34:48
没有其他依赖项的简单解决方案是这样设计应用程序:相关视图共享一个公共辅助Collection,可能是作为全局/模块范围的变量,或者作为构造函数参数传递。此集合将用作特定类型的模型的明确存储,通过选中它,您可以避免创建相同的模型两次:
var model = App.sharedCollection.get(id);
if (!model) {
model = App.sharedCollection.add({id: id});
}如果您更喜欢预先构建的解决方案,则可以使用Backbone.ModelFactory库,该库可自动执行此重复数据消除。有了这个主干插件,您只需使用Backbone.ModelFactory而不是Backbone.Model.extend来定义您的模型,复制就会自动处理。下面是一个从README中提取的示例
var User = Backbone.ModelFactory({
defaults: {
firstName: 'John',
lastName: 'Doe'
}
});
var user1 = new User({id: 1});
var user2 = new User({id: 1});
var user3 = new User({id: 2});
console.log(user1 === user2); // true
console.log(user3 === user1); // falsehttps://stackoverflow.com/questions/21026674
复制相似问题