2013-06-03 2 views
0

У меня есть коллекция под названием Projects, которая содержит несколько моделей модели Project. Когда я хочу перечислить все проекты, я использую ListProjectsView. Его функция render генерирует ProjectView для каждого проекта в коллекции, что позволяет удалить один отдельный проект, привязывая событие к его имени.Backbone.js + Handlebars.js - {{#each}} вместо просмотра модели?

Однако теперь я хочу использовать Handlebars для создания шаблонов. С рулями проще отобразить все модели коллекции, с each помощником, как это:

<ul> 
    {{#each projects}} 
    <li>{{this.name}}</li> 
    {{/each}} 
</ul> 

Это прекрасно работает, но теперь мне интересно, как я могу удалить один проект, так как я не использую ProjectView больше. Нужно ли добавлять id к каждому <li>, чтобы я мог связать событие? Или мне нужно использовать ProjectView?

Заранее спасибо.

ответ

1

Логика здесь должна пройти через ListProjectsView. Один из способов сделать как вы говорите, и Закрепление data-id каждому li, а затем в обработчике события получаем цель

deleteProjectHandler : function(evt){ 
    var $target = $(evt.target), id = $target.data('id'); 

    this.deleteProject(id); 
} 

или что-то подобное.

+0

Хорошая практика иметь идентификатор базы данных объекта в DOM? – anpa

+0

Я не понимаю, почему нет. это может быть произвольный идентификатор для пользователей или любого, кто просматривает DOM – Evan

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