I'我得到这个.get()在ember中未定义

I'm getting this.get() is undefined in ember

本文关键字:get ember 未定义      更新时间:2023-09-26

我正在尝试创建一个事件总线,以便能够在整个应用程序中触发一些ui事件。我遵循了这里的说明:http://emberigniter.com/communication-between-distant-components/

我将事件总线作为服务加载到一个名为ui的组件属性中,但由于某种原因,我得到了这个错误:TypeError: this.get(...) is undefined,这很奇怪,因为它应该是,对吧?无论我是在init中运行代码,还是稍后在didInsertElement中运行代码都无关紧要,同样的错误。我能做什么?

// services/ui.js
import Ember from 'ember';
export default Ember.Service.extend(Ember.Evented);
//components/side-menu.js
import Ember from 'ember';
export default Ember.Component.extend(Ember.Evented, {
  ui: Ember.inject.service(),
  init() {
    this._super(...arguments);
    this.get('ui').on('side-menu:toggle', this.actions, 'toggle');
  },
  actions: {
    toggle: function() {
      this.$().sidebar('toggle');
    }
  }
});

我想明白了。我想这是因为我绑定了this.actions,而get没有在actions属性上定义。相反,当我制作了一个名为toggle的方法并绑定this时,它起了作用。谢谢你的帮助!