我目前使用Marionette 2.4.7
并使用LayoutViews
结构化我的应用程序。采取非常简单的例子LayoutViews
(通常是模板住分开):Marionette LayoutView地区 - 显示非ItemView内容
var LayoutView = Marionette.LayoutView.extend({
template: "<div id="main-region"></div><div id="menu-region"></div>",
regions: {
mainRegion: "#main-region",
menuRegion: "#menu-region"
}
});
var MainLayoutView = Marionette.LayoutView.extend({
template: "<div id="title-region"></div><div id="content-region"></div>",
regions: {
titleRegion: "#title-region",
contentRegion: "#content-region"
}
});
基本上页被分成两个部分,一个部分显示网页的标题,并显示主内容的部分。我使用下面的填充内容区域:
var layoutView = new LayoutView();
var mainLayoutView = new MainLayoutView({ className: "someClass" });
layoutView.mainRegion.show(mainLayoutView);
var contentLayoutView = new ContentLayoutView();
mainLayoutView.contentRegion.show(contentLayoutView);
的ContentLayoutView
有子区,做了很多其他的东西,所以是一个相当复杂的视图。 MainLayoutView
的titleRegion
只显示几个字,所以很简单。
现在对我的问题,有没有一种方法可以解决需要为titleRegion
创建ItemView
,只需显示几个字?这种情况在我的应用程序中重复了几次,似乎有点矫枉过正,需要为每种情况分别创建ItemViews
。我知道我可以使用设置DIV HTML
:
$("#title-region").html("Page title");
,但我要坚持做事情的方式Marionette
。
我曾尝试:
mainLayoutView.titleRegion.show("Page name");
,但我得到的错误:'view.on' is not a function
,显然是因为.show
期待一个ItemView/LayoutView
。
的地方是你的'mainLayoutView'重新呈现在您需要要更改标题还是需要标题在“contentRegion”中更改视图时进行更改? – rdubya
@rdubya当用户滚动浏览菜单时,会重新呈现'mainLayoutView',每次都设置'titleRegion'和'contentRegion' –
您可以添加进行重新渲染的代码的相关部分吗?如果你不能,那没问题。如果我能看到它,给你一些示例代码会容易一点。 – rdubya