Events 木偶最佳实践:集合作为属性

Events 木偶最佳实践:集合作为属性,events,collections,attributes,models,marionette,Events,Collections,Attributes,Models,Marionette,我有一个用户是木偶模型。 用户有一个客户端列表,我想将其表示为一个集合。 用户有一个currentClient,它是对clients集合中某个模型的引用 我的问题是,将客户机集合作为用户的属性有意义吗?还是应该为客户机列表创建一个请求者,传递给用户 如果有意义的话,我宁愿将客户机作为一个属性,因为当重新分配currentClient时,我希望注册事件以基于currentClient中的数据更改其他视图。我不知道这是否是处理这种情况的最佳方法。作为一种最佳实践,我想说,尝试保持模型“平坦”将避免以

我有一个用户是木偶模型。 用户有一个客户端列表,我想将其表示为一个集合。 用户有一个currentClient,它是对clients集合中某个模型的引用

我的问题是,将客户机集合作为用户的属性有意义吗?还是应该为客户机列表创建一个请求者,传递给用户


如果有意义的话,我宁愿将客户机作为一个属性,因为当重新分配currentClient时,我希望注册事件以基于currentClient中的数据更改其他视图。我不知道这是否是处理这种情况的最佳方法。

作为一种最佳实践,我想说,尝试保持模型“平坦”将避免以后的麻烦,特别是在涉及到像
toJSON
这样的操作时(嵌套的集合将只成为主干模型的数组)。模型中嵌套的普通对象和数组内部的更改无法轻松绑定到主干的事件系统

您的描述列出了许多“has-a”和“has-many”关系。什么是“最佳”在很大程度上取决于你的应用程序的架构。谢天谢地,主干网有一个非常好的插件社区,可以帮助您塑造您希望应用程序的行为:


是处理这些类型关系的常用插件。它通过一点配置抽象了嵌套集合用例。

非常抱歉延迟,我突然被从这个项目中拉了出来,没有查看您的答案。非常感谢,先生。@KevinB,不用担心。自从我给出答案以来,我已经开发了一些主干/木偶应用程序,并且采用了插件管理和手工管理的两种方法。事实上,我有一个非常相似的用例,父模型有一个引用其子模型ID的属性。最终,这是在前端处理并将其持久化到数据库的最简单方法。