扩展木偶视图

时间:2014-09-22 15:35:33

标签: backbone.js marionette

在我的应用程序中,我发现实现FrameView可以扩展LayoutView,但是会有一些额外的逻辑来保留帧标题等,这很方便。(我的目标是让Region处理显示标题的问题。)

从Java的Swing角度来看,LayoutView对我来说是一个JPanel,但我想把它变成一个JFrame想要的人: - )

有没有办法以这种方式扩展Marionette视图(并执行一些初始化),initialize方法仍未使用? (我不想打扰用户调用FrameView.prototype.initialize方法来使事情有效)

这是我的尝试(但它遇到了上述问题):

var FrameView = Marionette.LayoutView.extend({
  initialize: function() {
    if(!this.title) this.title = null;
  },
  setTitle: function(title) {
    this.title = title;
    this.trigger("change:title", title);
  }
})

理想情况下,FrameView会将LayoutViewBackbone.Model结合起来(因此我会将setTitle之类的方法视为理所当然,即使语法略有不同)。视图的Backbone.Model部分会保留标题,图标等等。

我还在学习Backbone.js和Marionette,所以我的思维方式可能很奇怪。我会感谢您的答案和任何建议如何实现我的目标。

1 个答案:

答案 0 :(得分:1)

如果您只想在视图对象上使用默认的title键,请使用键扩展视图原型:

var FrameView = Marionette.LayoutView.extend({
  title: null,
  setTitle: function(title) {
    this.title = title;
    this.trigger("change:title", title);
  }
})