2012-02-16 2 views
1

Это хорошая идея, чтобы родительские представления украшали представление детей элементами UI, и каков основной способ сделать это?Дилемма родительского ребенка в backbone.js

Например, у меня есть экземпляр PhotoView, который представляет собой JPEG, а также несколько кнопок действий, которые появляются при наведении указателя мыши. Это PhotoView завернуто в PhotoDetailsView, что добавляет карту карт Goolge и некоторые другие вещи.

Я хочу добавить к фотографии edit. Проблема в том, что если я положил его на PhotoView, тогда функция обратного вызова функции edit должна просто запустить событие, потому что это действительно PhotoDetailsView, который должен иметь дело с действием редактирования. С другой стороны, если я сделаю родительское представление, добавьте эту кнопку пользовательского интерфейса в дочерний режим, это также не вариант, потому что родительское представление должно знать точную структуру пользовательского интерфейса дочернего представления. В любом случае, похоже, между ними существует отвратительная зависимость, от которой я хочу избавиться.

Как решить эту дилемму?

ответ

0

Если ваш PhotoView элемент является дочерним вашей PhotoDetailsView, мне кажется, что вы должны иметь свой edit кнопку как часть PhotoView, но есть действие на вашем PhotoDetailsView. С <button class="edit">Edit</button> где-то в вашем PhotoView шаблоне, это должно быть в вашем PhotoDetailsView:

events: { 
    "click .edit": "editPhoto" 
}, 
editPhoto: function(event) { 
    // Something something 
} 

Таким образом, все ваше Родительское представлению нужно знать о мнении ребенка является то, что у него есть что-то кликабельный класс edit.

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