骨干marionette.js父母视图泡沫下来?

时间:2015-06-09 15:08:13

标签: javascript backbone.js marionette

我引用此questiondocument我知道如何冒泡。

但在我的情况下,我想要泡下来。

就像我单击父视图上的按钮然后触发我所有子视图的一些功能。

var parent = Marionette.CompositeView.extend({
    triggers: {
        'click #edit': "??"  // trigger the childview
    }
})

上面只是描述我的概念的代码。

修改

或者也许不使用牵线木偶,可以用骨干来做伎俩吗?

有谁知道怎么做?

感谢

1 个答案:

答案 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');
  }
});