在我的应用程序中,我发现实现一个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会将LayoutView与Backbone.Model结合起来(因此我会理所当然地得到像setTitle这样的方法,尽管语法略有不同)。视图的Backbone.Model部分比保留标题、图标之类的东西更好。
我仍然在学习Backbone.js和Marionette,所以我的思维方式可能很奇怪。我将感谢你的回答和任何如何实现我的目标的建议。
发布于 2014-09-22 15:53:00
如果您只想在视图对象上使用默认的title键,那么用键扩展您的视图原型:
var FrameView = Marionette.LayoutView.extend({
title: null,
setTitle: function(title) {
this.title = title;
this.trigger("change:title", title);
}
})https://stackoverflow.com/questions/25977926
复制相似问题