在多个视图中触发事件
问题描述:
我在一起使用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...
有什么我应该做不同?
谢谢!
答
实际的UI事件在测验视图中完成。您正确地删除该元素并销毁该模型。现在你有两个选择:
- 让你的IndexView侦听你的Quiz集合上的“remove”事件。
- 触发从您的测验视图一个新的事件,通知谁是听
监听remove事件的伟大工程。谢谢! – PreciousBodilyFluids 2011-02-24 22:22:55