4

私は Backbone を初めて使用し、まだ完全には理解していません。また、ドキュメントが見つからない状況に遭遇しました。複数のビューを含むビューがある場合はどうすればよいですか? たとえば、 というビューがありますStackView。このビューの目的は、一連のカードをきれいにレイアウトすることです。スタック内のカードの追加、削除、および調整のアニメーションを管理します。各カードはCardView. これをどのように処理しますか?ビューに変数を作成し、View インスタンスをその変数に割り当てるだけで、ビュー内のビューについて話している人を見てきました。CardViewa の変数に s の配列を追加するだけStackViewですか?

4

1 に答える 1

1

それが私がしていることであり、うまく機能しています。これは、アプリケーションで使用するビューのスニペットです。コーヒースクリプトから通常の JavaScript に書き直したので、タイプミスをお詫びします。

render: function() {
  var _this = this;
  this.$el.html(this.template());

  this.listItemViews = [];

  // for each model in the collection, create a new sub-view and add
  // it to the parent view
  this.collection.each(function(model){
    var view = new App.Views.Projects.ListItem({model:model}); // create the new sub-view
    _this.listItemViews.push(view); // add it to the array
    _this.$('#project-table tbody').append(view.render().$el); // append its rendered element to the parent view's DOM
  });
  return this;
}

これにより、Table ビューはすべてのlistItemViewビューへの参照を維持できます。

もちろん、これを行う場合は、これらの子ビューを適切に削除し、親ビューを削除するときにすべてのイベントをバインド解除する必要があります。

于 2012-06-26T18:30:35.800 に答える