2011-02-24 167 views
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... 

有什么我应该做不同?

谢谢!

回答

2

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

  • 让你的IndexView侦听你的Quiz集合上的“remove”事件。
  • 触发从您的测验视图一个新的事件,通知谁是听
+0

监听remove事件的伟大工程。谢谢! – PreciousBodilyFluids 2011-02-24 22:22:55