通常我发现自己需要编写一个具有特定功能的对象,它是一组模型。使用自定义方法扩展Backbone集合以添加逻辑是一种不好的做法吗?
最后,我扩展了一个集合并添加了更多可与其模型配合使用的函数。
我认为是更好的展现你一个例子:
我的应用程序有一组权限,与用户和/或平台的版本有关。
var Permissions = Backbone.Collection.extend({
model: Permission,
hasAccess: function (moduleCode) {
....
},
allowAccess: function (moduleCode) {
....
},
...
用这种方法我改变了权限(模型)的属性的格式。 (我的权限是代码与字符串的连接,用于标识许可类型。)
一位同事告诉我这是错误的。在.NET中,他创建了一个类,并添加了一个私有列表并对其进行更改。他不会继承列表并进行更改。
他会做一个模型,它里面他会补充一个集合属性
this.set("permissionsCollection", new Backbone.Collection.extend({model: Permission}))
[评论:我不明白为什么他创造一切的性质,我认为对他来说是不需要。] - >但这是另一个问题
我认为用不同的方式。我知道该集合内部有该列表。我在Backbone.Collections中有很强的潜力,为什么我必须使用一个没有必要的模型?如果我不需要封装......我认为这是没有必要的,他对我的观点是过度的。
我错了吗?我不知道如何使用BackboneJS集合?
预先感谢您。
我明白了。我也一直这样做。我的模型非常自定义。当几个模型有共同的方法,但不是所有的模型,我创建一个我将扩展的超级模型,或者我创建新的属性(包含其他模型,集合...,默认外部)。我也非常喜欢可读性,更容易理解,所以它更易于维护。那么你认为可以为自定义集合添加更多功能吗? – ccsakuweb
当然,虽然那些处理你的集合数据的方法(比如上面的例子),但我认为可以用这种方式对它们进行分组。 –