2

我正在使用 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...

有什么我应该做的不同的事情吗?

谢谢!

4

1 回答 1

2

实际的 UI 事件在测验视图中完成。您正确地移除了元素并破坏了模型。现在你有两个选择:

  • 让您的 IndexView 监听您的测验集合上的“删除”事件。
  • 从您的测验视图中触发一个新事件以通知正在收听的人
于 2011-02-24T19:50:28.140 回答