将模型从一个集合移动到另一个集合[BackboneJS]

时间:2015-02-15 18:54:43

标签: backbone.js backbone-collections

想象一下,我需要使用BackboneJS创建像Gmail一样的单页应用程序。 每当邮件项目标有新标签/删除现有标签时,邮件项目应出现在相应的列表中。

我假设每个电子邮件列表(如收件箱,已发送邮件,某些自定义标签)都可以设计为集合。每当邮件项目被存档或标记有其他标签或删除现有标签时,邮件项目应从一个列表中删除并适当添加到其他列表中。

这是一种正确的设计方法吗?

2 个答案:

答案 0 :(得分:0)

因此,您希望将电子邮件model放在许多不同的collection中(例如inboxsent)。这个有可能。但我建议给这封电子邮件model。告诉电子邮件model它有这个和这个标签。

您将收到collection封电子邮件;在此collection中,您可以创建函数以轻松提取inboxsent模型。

答案 1 :(得分:0)

你是对的。这是完美的设计方法。这使您可以轻松管理事件,如下所示:

var Inpox = Backbone.Collection.extend({
    model: Email,
    ....
});


var SentItem = Backbone.Collection.extend({
    model: Email,
    ....
});

emailApp.on("sent",function(){// When sent triggered from Email

//Do sent email specific task

    backboneEventObject.trigger("add");
});

backboneEventObject.on("add", function(){
    newSentItemCollection.trigger("add");// Trigger add on the sent Item Collection
});