在Marionette ItemView定义

时间:2016-03-05 23:06:15

标签: javascript jquery model-view-controller backbone.js marionette

我有两个骨架集合在div中呈现,如下所示:

<html>
    <body>
        <div id="one">
            <-- Collection c1 rendered by Marionette ItemView App.V1 here -->
        </diV>

        <div id="two">
            <-- Collection c2 rendered by Marionette ItemView App.V2 here -->
        </div>
    </body>
</html>

现在我想将模型添加到集合c1(和c2),但我所知道的只是div id - #one#two,因为App.V1App.V2的呈现方式如下:

var App = new Marionette.Application();

App.addRegions= {
one: "#one",
two: "#two"
}

function r()
{
var c1= new C110;
c1.fetch();
var c2= new C220;
c2.fetch();
App.one.show(new App.V1({collection: c1});
App.two.show(new App.V2({collection: c2});
}

App是全球木偶对象; one是div #one定义的区域,two是div #two定义的区域。

我的问题是 - 如何在c1c2App.V1的定义之外获取收藏App.V2r()并添加一些模型他们(如果我再次致电r(),我会新建c1'sc2's,因此c1.add(...)c2.add(....)变得无用)?

1 个答案:

答案 0 :(得分:1)

事实证明,全局Marionette对象App保存对所有视图(当前在DOM中存在)及其各自集合的引用。

因此,在上述情况下,c1可以像这样访问:App.one.currentView.collection类似c2可以这样访问:App.two.currentView.collection (请注意,onetwo是由App定义的木偶区域的名称,而不是html div ids的名称