Ember 中的简单方法别名

simple method aliasing in Ember

我有以下代码

var object = Ember.Object.create({
  foo: Ember.computed.alias('bar'),
  bar: function(){
    console.log('bar');
  }
});

object.foo();

提高

TypeError: object is not a function

有没有惯用的方法来实现这个?

Ember.computed.alias 仅适用于计算属性。相反,使用 aliasMethod 计算函数。

var object = Ember.Object.create({
    foo: Ember.aliasMethod('bar'),
    bar: function() {
        console.log('bar');
    }
});

object.foo();

编辑:我之前认为您可以执行类似 o.get('foo')() 的操作来调用使用 Ember.computed.alias 的方法,但事实并非如此。不能 100% 确定为什么,但它在我设置的 JSBin 中不起作用。无论哪种方式,aliasMethod 都有效。