Javascript 在木偶/Backbone.js中渲染布局和子视图
我有一个可行的解决方案,在我正在开发的木偶应用程序中,使用区域视图渲染布局,但感觉有些不对劲。您必须直接向DOM追加任何内容吗 以下是我在控制器中的方法:Javascript 在木偶/Backbone.js中渲染布局和子视图,javascript,jquery,model-view-controller,backbone.js,marionette,Javascript,Jquery,Model View Controller,Backbone.js,Marionette,我有一个可行的解决方案,在我正在开发的木偶应用程序中,使用区域视图渲染布局,但感觉有些不对劲。您必须直接向DOM追加任何内容吗 以下是我在控制器中的方法: //Grab the main Layout var layout = new APP.Views.LayoutView(); //Render that layout layout.render(); //Make the model var simpl
//Grab the main Layout
var layout = new APP.Views.LayoutView();
//Render that layout
layout.render();
//Make the model
var simpleModel = new APP.Models.simpleModel({
"field1" : "foo",
"field2" : "bar"
});
layout.header.show(new APP.Views.subView({model: simpleModel}));
$('body').html(layout.el);
这是我觉得不自然的最后一部分。这主要是因为如果我将“layout.header.show”移到.html()之后,则它无法正确呈现。如果区域在推送到DOM后不能动态变化,那么区域有什么意义
以下是我的布局:
APP.Views.LayoutView = Backbone.Marionette.Layout.extend({
template: "#layoutTemplate",
className : 'wrapper',
regions: {
header: "#header",
footer: "#footer"
}
});
下面是子视图:
APP.Views.subView = Backbone.Marionette.ItemView.extend({
template : '#headerTemplate',
className: 'container'
});
正如我所说,这是可行的,但感觉我没有正确使用区域。有没有更好、更简洁的方法可以让您在将布局渲染到DOM后访问区域
在本文中,似乎没有提到使用.html()来获取页面上的内容——我想知道这是因为不需要它还是因为它是假定的
有人能帮忙吗?好的,看来这可以通过在应用程序中创建一个“区域”,然后使用.show()显示其中的布局来避免 下面是我在上面找到的一把小提琴的链接,它有助于: 还有一个问题: 小提琴特别有以下代码:
App = new Backbone.Marionette.Application();
App.addRegions({
'nav': '#nav',
'content': '#content'
});
程序员可以使用它向这些区域添加布局,这意味着您永远不必附加到DOM
如果其他人有更优雅的解决方案,请发布 好的,看来这可以通过在应用程序中创建一个“区域”,然后使用.show()显示其中的布局来避免 下面是我在上面找到的一把小提琴的链接,它有助于: 还有一个问题: 小提琴特别有以下代码:
App = new Backbone.Marionette.Application();
App.addRegions({
'nav': '#nav',
'content': '#content'
});
程序员可以使用它向这些区域添加布局,这意味着您永远不必附加到DOM
如果其他人有更优雅的解决方案,请发布