自Marionette Application Regions不推荐使用以来的用途

时间:2015-01-06 21:39:11

标签: backbone.js marionette

我对以下链接中的Marionette(2.3.0)文档感到困惑,该文档说不推荐使用应用程序区域功能。应该使用布局视图。这是否意味着我不应再使用MyApp.addRegions()了?那我该如何将布局视图添加到我的应用程序中呢?

http://marionettejs.com/docs/marionette.application.html#application-regions

  

申请区域

     

警告:不建议使用此功能已弃用。而不是使用   应用程序作为视图树的根,您应该使用布局   视图。要将布局视图范围限定为整个文档,您可以进行设置   它的“身体”。这可能类似于以下内容:

     

var RootView = Marionette.LayoutView.extend({el:'body'});

1 个答案:

答案 0 :(得分:4)

我想用一个非常简单的例子来解释在牵线木偶中使用布局视图。

HTML

   <div id="appDiv"></div>

   <script type="text/template" id="mainTemplate">
       <div id="div1"></div>
       <div id="div2"></div>    
   </script>

    <script type="text/template" id="itemTempFirst">
       <p>some text item 1 view</p>
       <p>some text item view 1</p>
    </script>

     <script type="text/template" id="itemTempSecond">
       <p>some text item 2 view</p>
       <p>some text item view 2</p>
     </script>

JS代码: -

     var app = new Marionette.Application();
     var LayoutViewObj = Marionette.LayoutView.extend({
         template:"#mainTemplate",
         el:"#appDiv",
         regions:{
            reg1:"#div1",
            reg2:"#div2"
         }
     });

      var layoutViewInstance = new LayoutViewObj();
      layoutViewInstance.render();

      var ItemView1Obj = Marionette.ItemView.extend({
         template:"#itemTempFirst"
      });

      var ItemView2Obj = Marionette.ItemView.extend({
         template:"#itemTempSecond"
      });

      var item1 = new ItemView1Obj();

      var item2 = new ItemView2Obj();

      layoutViewInstance.getRegion("reg1").show(item1);

      layoutViewInstance.getRegion("reg2").show(item2);

请注意我之前没有el元素的尝试,但我没有运气,因为我用el:&#34;#someElem&#34;生活变得更轻松