例如,我有一个类似电子邮件的应用程序,并有各种部分(电子邮件组):
所有这些群组都包含电子邮件,我们称之为电子邮件模型。现在我的问题是:
答案 0 :(得分:2)
在我看来,将不同的组消息存储到一个集合中会导致数据维护问题(刷新,渲染视图)。
您可以在电子邮件组模型中嵌套电子邮件收集。每个邮件组都有一个邮件池,您可以轻松地获取这些邮件。
如,
邮箱模型
var MailBox = Backbone.Model.extend({
initialize: function(){
//nest messages collection inside of model
this.messages = new Messages();
this.messages.url = "your/path/"+this.id+"/to/RESTful/";
}
});
消息模型
var Message = Backbone.Model.extend(function(){});
邮件收集
var Messages = Backbone.Collection.extend({
model: Message
});
实例化MailBox模型实例
var sentBox = new MailBox({id:"sent"});
//fetch messages in this box
sentBox.collection.fetch();
var inBox = new MailBox({id:"in"});
//fetch messages in this box
sentBox.collection.fetch();
您的消息列表视图onSync Handler
var MessageListView = Backbone.View.extend({
initialize: function(){
//register messages syn event
this.listenTo(this.model.messages,"sync",this.render);
},
render: function(){
this.model.messages.each(function(msg){
//merge message model data and view
});
}
});
您可以在收件箱和已发信箱之间切换时更改消息列表视图的型号。
希望这对你有所帮助。
答案 1 :(得分:1)
在这种情况下,模型将是“电子邮件消息”,因此最好对名为“收件箱”,“已发送”等的每个组使用集合,这是基于“电子邮件消息”模型。
当然你也可以使用名为“Group”的集合,但在我看来这是个坏主意。