backbone marionette.js 父视图是否向下冒泡?
Do backbone marionette.js parent view bubble down?
我参考了这个question and document我知道如何冒泡。
但我的情况,我想泡下去。
就像我在父视图上单击一个按钮然后触发我所有子视图的某些功能。
var parent = Marionette.CompositeView.extend({
triggers: {
'click #edit': "??" // trigger the childview
}
})
以上只是描述我的概念的代码。
编辑
或者不使用 marionette,可以使用 backbone 来解决问题吗?
有人知道怎么做吗?
谢谢
如果您使用 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');
}
});
我参考了这个question and document我知道如何冒泡。
但我的情况,我想泡下去。
就像我在父视图上单击一个按钮然后触发我所有子视图的某些功能。
var parent = Marionette.CompositeView.extend({
triggers: {
'click #edit': "??" // trigger the childview
}
})
以上只是描述我的概念的代码。
编辑
或者不使用 marionette,可以使用 backbone 来解决问题吗?
有人知道怎么做吗?
谢谢
如果您使用 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');
}
});