首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Backbone LayoutManager Re Render SubViews

Backbone LayoutManager Re Render SubViews
EN

Stack Overflow用户
提问于 2013-02-14 22:25:42
回答 3查看 3.7K关注 0票数 3

我在视图中使用BBB和很棒的LayoutManager。不幸的是,我找不到重新呈现特定子视图的方法。下面是我的设置:

代码语言:javascript
复制
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()会有什么可能,但是如何在这种设置中只呈现子视图呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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

票数 2
EN

Stack Overflow用户

发布于 2013-02-14 22:58:30

如果我没理解错你的问题,你可以在你的dosomething函数中这样做:

代码语言:javascript
复制
this.$("#divToRenderTo").html(new subView().render().$el);

确保在子视图的呈现函数的末尾有"return this;“。

票数 0
EN

Stack Overflow用户

发布于 2014-03-13 08:38:23

对于layoutmanager,我通常有两种方法:

  1. 在初始化函数中实例化视图,然后将它们放到beforeRender中的视图中。这为视图提供了对子视图的访问权,因此可以直接呈现它。

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();}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14876978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档