在`send`中无法识别ControllerMixin`action`对象

时间:2015-06-18 13:27:31

标签: ember.js

不确定这是错误还是预期的行为。我创建了一个包含ControllerMixin的Ember.Object。这为它提供了send函数,它应该能够在actions对象中找到函数。但是,它不能这样做。相反,它会查看私有的_actions对象,因此,如果我将操作放在_actions中,一切正常。这是有意的吗?如果是这样,为什么?

代码示例:

import Ember from 'ember';
const { Component, on } = Ember;

export default Component.extend({

  triggerFoo: on('init', function() {
    const bar = this.get('bar');
    bar.send('foo');
  })

});

...

import Ember from 'ember';
const { ControllerMixin } = Ember;

export default Ember.Object.extend(ControllerMixin, {

  _actions: {

    foo() {
      console.log('`foo` was triggered');
    }

  }
});

1 个答案:

答案 0 :(得分:1)

您可以在此处找到解释:https://github.com/emberjs/ember.js/issues/9459

TL; DR它与动作不是特殊属性的日子有向后兼容性问题,你可以使用动作做任何事情。它可以在Ember 2.0中修复。