我在视图中使用BBB和很棒的LayoutManager。不幸的是,我找不到重新呈现特定子视图的方法。下面是我的设置:
Home.Views.Layout = Backbone.Layout.extend({
template: "home/home",
el: "#main",
views: {
"#left-menu-container": new Home.Views.Leftmenu(),
"#searchbox": new Home.Views.Searchbox(),
"#content": new Home.Views.Content()
}
});
Home.HomeView = new Home.Views.Layout();
Home.HomeView.render();
Home.Views.AddEditPatient = Backbone.View.extend({
template: "......",
events: {
'click .dosomething': 'dosomething'
},
dosomething: function(){
// [dosomething]
// Only Render Sub-View, e.g. #content here...
}
});我不想重新呈现整个布局,再次调用Home.HomeView.render()会有什么可能,但是如何在这种设置中只呈现子视图呢?
发布于 2013-02-15 00:33:57
我认为你想用backbone.layoutmanager来做类似这样的事情
thisLayout.setView("#content", new View()).render();
可能对http://documentup.com/tbranyen/backbone.layoutmanager/#usage/nested-views有帮助的是backbone.layoutmanager v0.6.6文档
另请检查http://vimeo.com/32765088
发布于 2013-02-14 22:58:30
如果我没理解错你的问题,你可以在你的dosomething函数中这样做:
this.$("#divToRenderTo").html(new subView().render().$el);确保在子视图的呈现函数的末尾有"return this;“。
发布于 2014-03-13 08:38:23
对于layoutmanager,我通常有两种方法:
initialize: function() { this.subview = SubView();},beforeRender: function() { this.insertView(this.subview);},doSomething: function() { this.subview.render();}
view.getView(#selector)返回嵌入的视图,然后对其调用render。函数:doSomething(){ this.getView('#content').render();}
https://stackoverflow.com/questions/14876978
复制相似问题