组件通信

时间:2015-06-09 07:05:26

标签: ember.js ember-cli

ember-cli 0.2.7

ember 1.13-beta2

我正在尝试设置一个组件来处理我的webapp中的叠加层。我希望能够从整个应用程序中打开这个叠加层,但我无法弄清楚如何这样做。这就是我得到的。

看来ember并不认识这项服务。任何帮助非常感谢!

服务     从'余烬'中导入Ember;

export default Ember.Service.extend(Ember.Evented, {
  publish: function() {
    return this.trigger.apply(this, arguments);
  },
  subscribe: function() {
    this.on.apply(this, arguments);
  },
  unsubscribe: function() {
    this.off.apply(this, arguments);
  }
});

导航组件

import Ember from 'ember';

export default Ember.Component.extend({
  tagName: 'nav',
  classNames: ['l-navigation'],

  events: Ember.inject.service('event-bus'),

  actions: {
    openDashboard: function() {
      this.get('events').publish('dashboard:open');
    }
  }
});

然后是'叠加'组件

import Ember from 'ember';

export default Ember.Component.extend({
  tagName: 'section',
  classNames: ['l-dashboard'],

  events: Ember.inject.service('event-bus'),

  init: function() {
    this.get('events').subscribe('dashboard:open', this, 'openDashboard');
  },

  openDashboard: function() {
    alert('opening dashboard');
  }
});

编辑 - 受欢迎的需求: - )

这是问题的jsbin。 http://emberjs.jsbin.com/cesotamuza/1/

0 个答案:

没有答案