在 Marionette ItemView 定义之外将模型添加到 backbone 集合
Add models to backbone collection outside Marionette ItemView definition
我在 div 中呈现了两个 backbone 集合,如下所示:
<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.V1
和 App.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
是全局Marionette对象; one
是由 div #one
定义的区域,two
是由 div #two
定义的区域。
我的问题是 - 如何在 App.V1
、App.V2
和 r()
的定义之外获取 Collection c1
或 c2
并添加一些模型给他们(如果我再次调用 r()
,我会创建新的 c1's
和 c2's
所以 c1.add(...)
和 c2.add(....)
变得无用)?
事实证明,全局 Marionette 对象 App
持有对所有视图(当前在 DOM 中处于活动状态)及其各自集合的引用。
所以,在上面的例子中,c1
可以这样访问:App.one.currentView.collection
同样,c2
可以这样访问:App.two.currentView.collection
(请记住,one
和 two
是由 App
定义的 Marionette 区域的名称,而不是 html div ids
的名称)
我在 div 中呈现了两个 backbone 集合,如下所示:
<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.V1
和 App.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
是全局Marionette对象; one
是由 div #one
定义的区域,two
是由 div #two
定义的区域。
我的问题是 - 如何在 App.V1
、App.V2
和 r()
的定义之外获取 Collection c1
或 c2
并添加一些模型给他们(如果我再次调用 r()
,我会创建新的 c1's
和 c2's
所以 c1.add(...)
和 c2.add(....)
变得无用)?
事实证明,全局 Marionette 对象 App
持有对所有视图(当前在 DOM 中处于活动状态)及其各自集合的引用。
所以,在上面的例子中,c1
可以这样访问:App.one.currentView.collection
同样,c2
可以这样访问:App.two.currentView.collection
(请记住,one
和 two
是由 App
定义的 Marionette 区域的名称,而不是 html div ids
的名称)