Ember:从组件到应用程序控制器的冒泡操作

时间:2015-08-06 10:30:51

标签: javascript ember.js ember-cli

我在ember中有一个组件,它需要向应用程序控制器发送一个动作(带有一个参数)。无论在何处呈现此组件,它都需要在应用程序控制器上调用完全相同的操作。

应用控制器

export default Ember.Controller.extend({
  actions: {
    addAlert: function(message) {
      this.set('message', message);
    },
    removeAlert: function(message) {
      this.set('message', message);
    }
  }
});

我该如何处理?从开始到结束。

1 个答案:

答案 0 :(得分:6)

动作不会通过控制器冒泡,当一个动作被触发时,它将通过当前路径的控制器,如果没有任何处理,它会一直冒泡到当前路径一直到顶层路径(应用程序)

如果该操作必须在控制器上设置属性,则可以直接从应用程序路径设置它(尽管不建议这样做)。

// routes/application.js
actions {
  addAlert(message) {
      this.controller.set('message', message);
    },
    removeAlert(message) {
      this.controller.set('message', message);
    }
}

有关更多信息,请阅读action bubbling