我有一个用户是木偶模型。用户有一个我想表示为集合的客户列表。用户有一个 currentClient,它是对客户端集合中的模型之一的引用。
我的问题是,将客户集合作为用户的属性是否有意义,或者我应该为客户列表创建一个请求者,传递用户?
如果有意义,我宁愿将客户端保留为属性,因为我想在重新分配 currentClient 时注册事件以根据 currentClient 中的数据更改其他视图。我不知道这是否是处理这种情况的最佳方式。
我有一个用户是木偶模型。用户有一个我想表示为集合的客户列表。用户有一个 currentClient,它是对客户端集合中的模型之一的引用。
我的问题是,将客户集合作为用户的属性是否有意义,或者我应该为客户列表创建一个请求者,传递用户?
如果有意义,我宁愿将客户端保留为属性,因为我想在重新分配 currentClient 时注册事件以根据 currentClient 中的数据更改其他视图。我不知道这是否是处理这种情况的最佳方式。
作为最佳实践,我会说尝试保持模型“平坦”可以防止以后出现问题,尤其是在涉及到诸如toJSON
(嵌套集合只会成为 Backbone 模型数组)之类的操作时。嵌套在模型中的 vanilla 对象和数组内部的更改不能轻易地绑定到 Backbone 的事件系统。
您的描述列出了许多“has-a”和“has-many”关系。什么是“最佳”很大程度上取决于您的应用程序架构。值得庆幸的是,Backbone 有一个非常好的插件社区,可以帮助您塑造您希望应用程序的行为方式:
Backbone.Relational是一个流行的插件,用于处理这些类型的关系。它通过一些配置抽象了嵌套集合用例。