2013-02-28 3 views
0

Просто ищите способ использовать две модели в одном представлении (или лучшую идею).Матричный чертеж с двух моделей

У меня есть Продукт, с набором Атрибуты. Атрибуты должны быть выбраны из предварительно определенного списка. Итак, мне нужно будет захватить список из Атрибут вариантов, затем список атрибутов, которые были выбраны для моего Продукт. У меня есть две конечные точки API для захвата обоих списков /attributes/ и /product/123/attributes/.

Как лучше всего достичь этого? Мне нужно отобразить варианты с первой конечной точки, затем использовать вторую конечную точку, чтобы показать, какие из них выбраны, а затем прослушать действие choose (т. Е. Отмечен флажок).

Или пыльников путь будет иметь каждый атрибут связан с каждым продукта и флаг сказать selected или нет, но это, кажется, немного задом наперед способ делать вещи ... но, конечно, проще всего реализовать с внешнего интерфейса.

Backend - это Django/Postgres, если это имеет значение.

ответ

0

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

var Product = Backbone.Model.extend({ 
    initialize: function(){ 
    var attributes = new Attributes(); 
    } 
}) 

При инициализации вида Передает Atributes Collection, наполненный все атрибуты захваченного из /attributes, и пустой модель продукта (или его инициализацию при создании вид). Затем, когда пользователь выбирает атрибут из списка, событие может быть триггером, который добавит его в коллекцию атрибутов продукта.

Надеюсь, что это поможет

+0

Хм - Я прошел средним способом. Убедитесь, что конечная точка APA ProductAttributes отображает все варианты, и если они выбраны или нет на лету. Не хранить все это в дБ. Возможно, для масштабирования мне нужно сохранить его в db, но пока это работает. –

Смежные вопросы