2013-06-02 20 views
1

我想在我的应用程序中用MVC流构造我的代码。我试图表现出如下我marionette.controller内我的提线木偶的应用程序实例创建布局..显示在Marionette.Application内部控制器中的布局

  1. 谁能告诉我是不是显示或控制器内改变布局一个正确的方法是正确的方式或不?如果没有,那么有什么适当的方法。

我的控制器

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

在此先感谢。

回答

1

GitHub上的代码似乎只包含空文件(除了库),所以我将假设Helper返回一个布局实例(您似乎已经指出,它说它返回了一个App_Layout实例)。

看起来您正在使用布局错误。使用布局的方式基本上是:

  1. 与将要显示在布局区域(如)panelRegioncontentRegion
  2. 创建视图实例创建一个布局实例(例如)panelViewInstancecontentViewInstance
  3. 写处理程序在布局本身显示时显示您的视图。

处理程序应该是这样的:

myLayout.on("show", function(){ 
     myLayout.panelRegion.show(panelViewInstance); 
     myLayout.contentRegionshow(contentViewInstance); 
    }); 

然后,显示布局在您的应用程序的地区之一:

MyApp.mainRegion.show(myLayout); 

上布局的文档是在这里:https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.layout.md

您可以在我的book on Marionette中了解更多有关使用布局和构建代码的信息。

+0

感谢您的回复......我很抱歉Github上的代码..现在我已经提交了我的文件..请看看..我已经完成了上面所述的事情。请帮我解决这个问题。 – Rachna

+0

已解决的问题与小的更改。 – Rachna