但在我的情况下,我想要泡下来。
就像我单击父视图上的按钮然后触发我所有子视图的一些功能。
var parent = Marionette.CompositeView.extend({
triggers: {
'click #edit': "??" // trigger the childview
}
})
上面只是描述我的概念的代码。
修改
或者也许不使用牵线木偶,可以用骨干来做伎俩吗?
有谁知道怎么做?
感谢
答案 0 :(得分:4)
如果您正在使用Marionette,则可以使用this.children
访问所有子视图。 children
属性会委托某些下划线函数,例如invoke
,因此您可以调用this.children.invoke
。这样的事情可能会满足您的需求:
var ChildView = Marionette.ItemView.extend({
template: _.template('child'),
myChildFunction: function() {
console.log('child view', this);
}
});
var ParentView = Marionette.CompositeView.extend({
template: _.template('<button id="edit">Edit</button><div class="children"></div>'),
childView: ChildView,
childViewContainer: '.children',
events: {
'click #edit': 'triggerChildren'
},
triggerChildren: function() {
this.children.invoke('myChildFunction');
}
});