【问题标题】:triggering events in multiple views在多个视图中触发事件
【发布时间】:2011-02-24 03:13:15
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: backbone.js coffeescript


    【解决方案1】:

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

    • 让您的 IndexView 监听您的测验集合中的“删除”事件。
    • 从您的测验视图中触发新事件以通知正在收听的人

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 2019-01-10
      • 2013-07-07
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      相关资源
      最近更新 更多