当前位置: 首页 > 知识库问答 >
问题:

在区域内附加另一个视图-木偶

奚翰海
2023-03-14

我使用主干布局管理器在应用程序中管理我的视图。我想试试木偶。我遇到了一个无法将视图附加到区域的问题。

<body>
  <div id="content">
       <header id="header"></header>
       <div id="wrapper">
               <span>Some View Content</span>
       </div>
       <footer id="footer"></footer>
  </div>
</body>  
MyApp = new Backbone.Marionette.Application();
var rm = new Marionette.RegionManager();

var regions = rm.addRegions({
    mainRegion : '#content',
    headerRegion : '#header',
    wrapperRegion : '#wrapper',
    footerRegion : '#footer'
});

regions.headerRegion.show(new HeaderView());
regions.wrapperRegion.show(new SomeView());
regions.footerRegion.show(new FooterView());

如果我想在wrapperRegion中附加另一个视图,怎么做?

我还想知道是否有办法将另一个视图插入到现有视图中?布局管理器允许我写下面提到的代码。。我怎样才能在木偶中实现这样的效果?

var MyView = Backbone.View.extend({

  tagName: "div",

  beforeRender: function() {
     this.insertView(new ItemView());
  }
});

共有3个答案

东方琪
2023-03-14

要追加视图,您需要布局视图

布局视图具有区域管理器

但首先,您需要添加一个由区域管理器控制的元素,如

var AppLayoutView = Backbone.Marionette.LayoutView.extend({
  template: "#layout-view-template",

  regions: { 
  }
  appendView: function ( incremennt, newView ){
     this.$el.append( '<div id="view'+increment+'" >' ) ;
     this.regionManager.addRegion( 'view'+increment , '#view'+increment )
     this['view'+increment].show ( newView ) ;
  }
});

为新视图创建新id将其添加到布局中

然后区域管理器将其添加为区域

你在那里展示你的观点

扈高逸
2023-03-14

您可以简单地使包装区域成为木偶。布局你可以在木偶上找到文档。布局视图

基本上,布局是项目视图的扩展,可以递归地在其中包含其他区域。这意味着您可以在一个布局中渲染多个视图,而布局本身可以在另一个区域中渲染。

潘哲
2023-03-14

每个区域一个视图。只需定义另一个区域来放入您的另一个视图。

 类似资料:
  • 问题内容: 搜索后,我没有在网上或任何其他资源中找到任何东西,我想知道您是否可以通过联接另一个视图和一些其他表来形成一个视图?我猜类似的东西与Server_ref.part_notification_view是要加入的视图。 问题答案: 您当然可以在另一个视图的基础上建立一个视图: 但是您不能引用基础表中的任何内容,包括不属于视图的任何字段: 具有相同列的基础表不是问题,并且如果您在视图中包含的内

  • 问题内容: 我没有找到有关此问题的文章,但没有一个解决我的问题。 就像我说的那样。 ViewControllerA ViewControllerB 我试图将添加为的子视图,但是它 抛出类似“ ” 的错误。 下面是代码… ViewControllerA ViewControllerB只是一个带有标签的简单屏幕。 ViewControllerB EDIT 根据用户答案的​​建议解决方案,ViewCon

  • 问题内容: 我的一个视图需要添加一个项目以及其他功能,但是我已经有另一个视图专门添加了一个项目。 我可以做类似的事情吗? 问题答案: View函数应将呈现的HTML返回给浏览器(在中)。在视图中调用视图意味着(可能)要进行两次渲染。相反,只需将“添加”分解为不是视图的另一个函数,并让两个视图都调用它。

  • 我找到了一些关于这个问题的帖子,但是没有一个能解决我的问题。 说像我已经... ViewControlllerA ViewControlllerB 我试图将ViewControlllerB添加为ViewControlllerA中的子视图,但是,它抛出了一个错误,如""。 下面是代码。。。 视图控制器 ViewControllerB只是一个带有标签的简单屏幕。 视图控制器B 编辑

  • 问题内容: 假设我有两个文本区域… 文字区1 文字区2 我希望能够从在文本区域2中键入的文本之后的文本中添加文本。例如:如果我写“我的名字叫乔”。在textarea中,它会同时复制并写“我的名字叫乔”。在现有的“ Hi There”之后的两个文本区域中。文本。 结果将是… 我可以使用jQuery还是需要使用AJAX这样做?我将如何去做? 问题答案: 绑定到事件时,您会注意到延迟。通常绑定到事件时,

  • 问题内容: 我正在尝试请求位于另一个域/服务器上的数据,但是在尝试发送请求时出现异常。 错误: 未捕获的异常:[异常…“组件返回的故障代码:0x80004005(NS_ERROR_FAILURE)” nsresult:“ 0x80004005(NS_ERROR_FAILURE)” 这是请求不在同一域/服务器上的内容的正确方法吗?还是有其他方法可以做到这一点? 我正在firefox 8.0中对此进行

  • 我正在开发一个3.8-e4混合程序(即我们有Luna依赖项,但我们还没有使用application.e4xmi)。所以我们基本上运行的是紧凑层。 话虽如此,找到一种e4编程方式将这些讨厌的视图堆叠到编辑器文件夹中会很好。 我想在编辑器区域中放置一个通用视图文件夹,这样在运行时打开的每个视图都将在那里打开。 (从此问题中窃取的图片) 创建一个透视图扩展,并将每个可能的视图添加到该扩展中,使用相对or

  • 以下是活动2的代码:包helloworld.app; 以下是活动1的xml文件代码: 编辑:以下是来自logcat的错误消息 08-01 07:01:11.673:E/AndroidRuntime(1326):at Android.view.view$1.onclick(View.java:3578) 08-01 07:01:11.673:E/AndroidRuntime(1326):at And