访问嵌入式布局中的子区域

时间:2013-12-11 02:06:13

标签: marionette

我有附加到APP的区域。

iApp.addRegions({
   sregion : "#sregion"

});

此区域附加到布局,基本上是应用布局,其中包含区域

var iLayout = Marioneete.Layout.extend({
    template : LayoutTemplate,
    regions : {
        mainheader : "#mainheader",
        menu : "#mainmenu",
        content : "#mcontent" 
    }

最后一个区域(内容)再次布局

 template : MainContentLayout,
    regions : {
        contentmainheader : "#headmain",
        cotenttable : "#tablecontainer",
        cotentdetailer : "#issuedetailer" 
    }
});

我通过主页面事件将this.applayout存储在控制器中,以便我可以访问其他事件发生时的视图,如下所示。

               var MyApp = require('mapp');
               mlayout = new AppLayout();
               MyApp.sregion.show(mlayout);
               this.applayout = mlayout;

在所选项目的同一控制器中,我正在尝试访问下面的其他“内容细则”,但这不起作用。

                this.applayout.content.cotentdetailer.show(new SelectedIssue({id:options}));

我们如何真正从主要区域/布局访问嵌套视图?我没有看到任何方法吗?

2 个答案:

答案 0 :(得分:0)

您需要先创建每个布局并将它们放在正确的区域中:

//same as above, but I used correct parent layout
var MyApp = require('mapp');
this.ilayout = new iLayout();
MyApp.sregion.show(this.ilayout);

//You didnt include all your source code for this layout so I am guessing on the variable name.   
this.mLayout = new mLayout();
this.ilayout.content.show(this.mLayout)

//now you can access contentdetailer
this.mLayout.contentdetailer.show(new SelectedIssue({id:options}))

答案 1 :(得分:0)

问题基本上是访问另一个地区的布局区域。做了一些研究,发现需要访问currenView然后区域。我在想那个方向。无论如何,它解决如下。

this.applayout.content.currentView.cotentdetailer.show(new SelectedIssue({id:id}));