0

以前、トグル ボタンを処理するためのバックボーン ビューを作成しました。

Star = Backbone.View.extend({
  events: {
    'click': 'toggle'
  },

  toggle: function() {
    this.$('i').toggleClass('icon-star').toggleClass('icon-star-empty');
  },

  status: function() {
    return this.$el.hasClass('active');
  }
});

そして、私はこのサブビューを次のようにビューで使用していました:

initialize: function() {
    var star = new Star({ el: this.$('.new .btn.star') });
    // ...
}

このようにして、バックボーンの他の多くの独立したビューでこのサブビューを再利用できます。(参考: 私はバックボーンの専門家ではありません。このコードも間違っている可能性があります。間違っている場合は修正してください。)

今、私は Backbone.Marionette を学ぼうとしていますが、同じ機能を実現する良い方法が見つかりませんでした。このビューを ItemViews や CompositeViews で使用するにはどうすればよいですか?

4

1 に答える 1

1

まったく同じアイデアを維持できます。(たとえば) Marionette を拡張するだけItemViewです。

Star = Marionette.ItemView.extend({...});

その後

var star = new Star({ el: this.$('.new .btn.star') });

別のオプションはextendあなたのStar見解です:

MyView = Star.extend({...});
于 2013-07-27T07:20:53.517 に答える