在Backbone.Marionette视图之间共享一些逻辑

时间:2013-07-25 13:15:41

标签: backbone.js marionette

以前,我制作了一个处理切换按钮的骨干视图:

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中使用此视图?

1 个答案:

答案 0 :(得分:1)

你可以保持完全相同的想法,只需延长(例如)木偶ItemView

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

然后

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

另一个选择是extend Star视图:

MyView = Star.extend({...});