запуск событий в нескольких представлениях - PullRequest
2 голосов
/ 24 февраля 2011

Я собираю приложение, используя Backbone.js, который сейчас имеет два представления: IndexView и QuizPartial.IndexView отображает большую часть страницы (некоторые графики и еще много чего) и содержит много QuizPartials.Моя проблема заключается в том, что когда пользователь щелкает ссылку «удалить» в одной из частичных частей, частичная часть должна быть удалена, а соответствующая модель уничтожена, в то время как IndexView отображает кнопку для создания новой викторины.Однако я не могу заставить IndexView реагировать на это событие.

Код:

class QuizPartial extends Backbone.View
  tagName: "div"
  className: "quiz"
  events:
    "click a.delete": "delete_quiz" # Works fine

  initialize: -> @render()

  delete_quiz: ->
    if confirm "Are you sure you want to delete this test?"
      $(@el).remove()
      @model.destroy()
    false

А затем представление индекса:

class IndexView extends Backbone.View
  tagName: "div"
  id: "quizzes_index"
  events:
    "click .quiz a.delete": "render_new_quiz_button" # Never fires

  initialize: -> @render()

  # etc...

Есть ли что-тоЯ должен делать по-другому?

Спасибо!

1 Ответ

2 голосов
/ 24 февраля 2011

Фактическое событие пользовательского интерфейса выполняется в представлении викторины.Вы правильно удаляете элемент и уничтожаете модель.Теперь у вас есть два варианта:

  • Пусть ваш IndexView прослушивает событие «удалить» из вашей коллекции викторин.
  • Инициируйте новое событие из вашего представления викторины, чтобы уведомить того, кто слушает
...