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

时间:2013-11-06 11:28:30

标签: events collections attributes models marionette

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

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

如果有意义,我宁愿将客户端作为属性,因为我想在重新分配currentClient时根据currentClient中的数据注册事件以更改其他视图。我不知道这是否是处理这种情况的最佳方式。

1 个答案:

答案 0 :(得分:2)

作为一种最佳实践,我认为试图保持模型“平坦”可以防止以后出现麻烦,尤其是涉及toJSON等操作时(嵌套集合只会成为Backbone模型的数组)。嵌套在模型中的vanilla对象和数组内部的更改不能轻易地绑定到Backbone的事件系统。

您的描述列出了许多“has-a”和“has-many”关系。什么是“最佳”取决于你的app的架构。值得庆幸的是,Backbone有一个非常好的插件社区,可以帮助您塑造您希望应用程序的行为方式:

Backbone.Relational是一个流行的插件,用于处理这些类型的关系。它通过一些配置抽象出嵌套的集合用例。