【发布时间】:2025-12-16 08:05:02
【问题描述】:
我试图让我的 Marionette 视图与应用程序区域和布局结合使用,但我似乎无法让布局中的嵌套视图呈现。
编辑:我希望OptionsView 和BreadcrumbsView 都在NavigationLayout 中呈现,而NavigationLayout 应该呈现在导航区域中。但是,导航区域根本不会呈现。控制台没有显示任何错误。
我的结构如下:
- Navigation region
- Navigation layout
- Options region
- Breadcrumbs region
- Content region
将ItemView 分配给导航区域按预期工作。
App = new Backbone.Marionette.Application();
App.addRegions({
'nav': '#nav',
'content': '#content'
});
var NavigationLayout = Backbone.Marionette.Layout.extend({
template: '#nav-template',
regions: {
'breadcrumbs': '#breadcrumbs',
'options': '#options'
}
});
var BreadcrumbsView = Backbone.Marionette.ItemView.extend({
template: '#breadcrumbs-template'
});
var OptionsView = Backbone.Marionette.ItemView.extend({
template: '#options-template'
});
var ContentView = Backbone.Marionette.ItemView.extend({
template: '#content-template'
});
App.addInitializer(function(options) {
var navigationLayout = new NavigationLayout();
App.nav.show(navigationLayout);
App.content.show(new ContentView());
navigationLayout.breadcrumbs.show(new BreadcrumbsView());
navigationLayout.options.show(new OptionsView());
});
$(function() {
App.start();
});
可以找到一个简化的测试用例here
【问题讨论】:
-
没有足够的信息来了解发生了什么。你得到什么错误,如果有的话?您看到的行为与您的预期有何不同?
-
当然,我的错。更新了问题。
-
你在使用 Marionette.Async 吗?或此处运行异步的任何其他代码?
-
不,上面的代码是这个测试用例中的所有Javascript,以及最新版本的jQuery、Underscore、Backbone和Marionette。我更新了整个测试的链接,pastebin.com 似乎已关闭。