我正在尝试使用我的应用程序中的MVC流构建我的代码。我试图在我的marionette.controller中的marionette app实例中显示创建的布局,如下所示。
我的控制器
define([ 'marionette', 'app', 'index_view' ], function( Marionette, App, IndexView ) {
console.log("Inside...ViewFlow Controller.");
var ViewFlow_Controller = Marionette.Controller.extend({
loadIndex : function() {
console.log("Inside...Load Index Method.");
App.main.show( new IndexView() );
}
});
return new ViewFlow_Controller();
});
我的IndexView就像这样
define(['app', 'helper', 'templates'],
function (App, Helper, templates){
console.log("Inside...Index View.");
App.Page_Index = (function(){
var Page_Index = {};
var _pageName = 'IndexPage';
var _pageLayout = Helper.newPageLayout({
name:_pageName,
panelView: Helper.newPanelView(),
headerView: Helper.newHeaderView({name:_pageName, title:'Welcome to the Index Page'}),
contentView: Helper.newContentView({name:_pageName, template: templates.content_index}),
footerView: Helper.newFooterView({name:_pageName, title:'IndexPage Footer'})
});
return Page_Index;
})();
return App.Page_Index;
});
我的帮助器返回App_Layout实例。 但它没有用,它给了我一个错误
Uncaught TypeError:object is not a function viewflow_controller.js:12
请帮帮我。
如果您想参考完整代码或贡献,可以找到代码here。
提前致谢。
答案 0 :(得分:1)
GitHub上的代码似乎只包含空文件(除了库),所以我假设Helper
返回一个布局实例(你似乎已经指出了,说它返回了{{ 1}}实例)。
看起来你的布局错误了。使用布局的方法基本上是:
App_Layout
和panelRegion
contentRegion
和panelViewInstance
处理程序应如下所示:
contentViewInstance
然后,在您的某个应用区域中显示该布局:
myLayout.on("show", function(){
myLayout.panelRegion.show(panelViewInstance);
myLayout.contentRegionshow(contentViewInstance);
});
有关布局的文档位于:https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.layout.md
您可以在我的book on Marionette中了解有关使用布局和构建代码的更多信息。