0

可以说我正在创建一种社交网络。一方面,您可以搜索显示个人资料列表的人员;另一方面,您可以单击“我的朋友”按钮,该按钮也会显示个人资料列表。因此,在这两种情况下,您都会获得一个配置文件列表,但略有不同,例如,您在 srcnd 列表中没有“交朋友”按钮或每个列表项中没有任何其他差异。

我的问题是:在这种情况下,我是否应该为两个列表创建一个视图,例如“listOfProfiles”?如果是,我该如何处理这些问题或我想在两者之一中显示的任何其他内容?如果不是,为什么?

我知道这是一个普遍的问题。只是我一般是主干或 MVC 的新手,我想了解这个概念。

4

1 回答 1

0

Backbone.js 的优点之一是模型实例可以同时存在于多个集合中,因此,当一个模型在 1 个集合中更新时,同一个实例在另一个集合中更新,触发两个集合的事件和两种型号。

这意味着您应该并且可以在您的应用程序范围内创建一个“全局”UsersCollection,您可以将所有用户实例推送到其中。

var UserCollection = Backbone.Collection.extend({});
var userCollection = new UserCollection();
    userCollection.update([models], {remove: false});

下次初始化第二个 UserCollection 时,可以在“parse”方法上添加一个方法来获取或获取全局 usersCollection 中的模型实例,这样就不会两次实例化具有相同 id 的模型。

我会将这些集合彼此分开,因为每个集合可能都有一个不同的比较器附加到它上面。想象一个按字母顺序列出的用户(朋友)视图和一个按另一种状态列出的用户列表。

在多个集合中使用模型的单个实例的强大功能,尝试通过全局集合保持模型同步。那将是我前进的方向。

于 2013-02-02T19:48:12.057 回答