У меня есть представление, которое отображает список задач:
ProjectManager.Views.TasksIndex = Support.CompositeView.extend({
initialize: function() {
_.bindAll(this, "render");
this.collection.bind("add", this.render);
},
render: function () {
this.renderTemplate();
this.renderTasks();
...
},
renderTemplate: function() {
$(this.el).html(JST['tasks/index']({ tasks: this.collection }));
},
renderTasks: function() {
var self = this;
this.collection.each(function(task) {
// only display draft tasks
if (task.get('status') === "draft") {
var taskItem = new ProjectManager.Views.TaskItem({ model: task });
self.renderChild(taskItem);
self.$('#tasks-list').append(taskItem.el);
}
});
}
....
});
Я отображаю представление для каждой задачи в коллекции. Я хотел бы иметь возможность удалить задачу.
Я дошел до того, что после того, как пользователь нажимает кнопку «Удалить» для задачи, я установил атрибут состояния в модели задачи «Удалено». Теперь каким-то образом мне нужно привязать обработчик событий в моем представлении TasksIndex, чтобы заново отобразить коллекцию.
Я пытался
this.collection.bind("change", this.render);
но это не сработало.
Как я могу распространить событие, которое произошло на модели в дочернем представлении, на родительское представление?