2011-02-24 226 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