我是 Backbone.js 和 Backbone.Marionette 的新手,我在尝试为我的应用程序遵循最佳模式时遇到了一些麻烦。
我正在创建一个由 PhoneGap 封装的移动 Web 应用程序。我有一个通用布局(类似 Facebook):2 个侧边栏、一个主标题和一个加载所有视图的内容区域。
我的 Backbone.Marionette 应用程序的初始化代码是:
var App = new Backbone.Marionette.Application();
App.addRegions({
leftRegion: '#left-drawer',
rightRegion: '#right-drawer',
headerRegion: '#header',
contentRegion: '#content',
mainRegion: '#main'
});
这是我将附加内容的区域。稍后,在初始化路由器之后,我有下一个:
App.headerRegion.show(App.Views.Header);
App.leftRegion.show(App.Views.LeftSidebar);
App.rightRegion.show(App.Views.RightSidebar);
这会将我的内容加载到这个新区域。问题出现在 HeaderView 中。我的标题视图的模板:
<button id="open-left"><img src="assets/img/icons/menu-icon.png"></button>
<h1 class="title logo"><img src="assets/img/logo.png" height="28px" width="167px"></h1>
<button id="open-right"><img src="assets/img/icons/chat-icon.png"></button>
ItemView 也很简单:
var HeaderView = Backbone.Marionette.ItemView.extend({
template: _.template(template),
});
在应用程序的某些部分,我不想<img>
在标题中使用。应用程序的某些页面需要将其更新为文本,例如<h1>Settings</h1>
. 我的问题是,最好的方法是什么?或者更好的是,这样做的方法是什么?现在我不知道从哪里开始,我想到的唯一想法是使用另一个模板创建一个新的 ItemView。
提前致谢!