2012-01-04 3 views
1

У меня есть представление, которое создает под-просмотр для каждого элемента в списке. В общем, давайте назовем их ListView и ListItemView. Я приложил событие следующим образом на ListItemView:Магистральная привязка для каждого события событий

events: { 
    "click .remove": "removeItem" 
} 

У меня есть шаблон сгенерированного HTML для ListItemView то есть примерно как следующий (выгружена фунт/гб для {/}, так что вы можете увидеть «нелегальный» HTML) :

{div class="entry" data-id="this_list_item_id"}
SOME STUFF HERE
{div class="meta"}
{a class="remove" href="javascript:;"}[x]{/a}
{/div}
{/div}

проблема заключается в том, когда щелчок на любом из [х] s, ВСЕ ListItemViews вызвать их функцию RemoveItem. Если у меня он исчезнет с идентификатора этой модели, я отброшу все элементы на странице. Если у меня есть он, откройте родительский элемент родительского элемента кликаемого элемента, чтобы захватить идентификатор данных, я получаю delete для EACH экземпляра ListItemView. Есть ли способ создать событие, специфичное для экземпляра, которое будет запускать только один файл removeItem?

Если у меня есть ListView, удерживайте один экземпляр ListItemView и переназначайте модель ListItem и визуализируйте для каждого элемента в списке, который он работает. Я только в итоге запускаю одно действие (removeItem). Проблема в том, что я должен найти родителя родителя-мишени, чтобы найти идентификатор данных attr. Лично я считаю, что приведенный ниже фрагмент довольно уродлив и хочет лучшего способа.

var that = $($(el.target).parent()).parent(); 

Любая помощь дает любому человеку.

+0

Можете ли вы предоставить свой код просмотра? –

ответ

1

Кажется, что ваш events хэш находится в вашем ListView.

Если это так, то вы можете переместить events хэш ListItemView и ваша removeItem функция может быть следующим

removeItem: function() { 
    this.model.collection.remove(this.model); 
} 

Если это не так, вы можете предоставить свой ListView и ListItemView код, так что я может посмотреть на это.

0

Дикое предположение, но возможно; убедитесь, что ваш обработанный html действителен. Возможно, что dom попадает в tiz из-за искаженного html

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