2

現在、IndexView と QuizPartial の 2 つのビューを持つ Backbone.js を使用してアプリを作成しています。IndexView はページの大部分 (一部のグラフなど) をレンダリングし、多数の QuizPartial を含みます。私の問題は、ユーザーがパーシャルの 1 つで「削除」リンクをクリックすると、パーシャルが削除され、適切なモデルが破棄され、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 イベントは、クイズ ビュー内で行われます。要素を正しく削除し、モデルを破棄します。次の 2 つの選択肢があります。

  • クイズ コレクションの「削除」イベントを IndexView にリッスンさせます。
  • クイズ ビューから新しいイベントをトリガーして、聞いている人に通知します
于 2011-02-24T19:50:28.140 に答える