2015-02-15 6 views
1

Представьте, что мне нужно создать одностраничное приложение, такое как Gmail, используя BackboneJS. Всякий раз, когда почтовый элемент помечен новыми ярлыками/удалены существующие метки, почтовый элемент должен появиться в соответствующем списке.Перемещение моделей из одной коллекции в другую [BackboneJS]

Я предполагаю, что каждый список электронных писем, таких как «Входящие», «Отправленные», некоторые пользовательские ярлыки, можно создать как коллекцию. Всякий раз, когда почтовый элемент архивируется или помечен дополнительными ярлыками или удаляет существующие метки, почтовый элемент должен быть удален из одного списка и соответствующим образом добавлен в какой-либо другой список.

Это правильный подход к дизайну?

ответ

0

Таким образом, вы хотите поместить электронное письмо model во множество разных collection s (например, inbox и sent). Это возможно. Но я бы посоветовал дать электронное письмо model этой информации. Скажите по электронной почте model, что у этого есть и этот ярлык.

У вас будет collection мейл; в этом collection вы можете создавать функции, которые можно легко извлечь inbox и sent.

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 
});