Ember中的简单方法别名

时间:2015-02-26 18:00:30

标签: ember.js

我有以下代码

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

object.foo();

提出

TypeError: object is not a function

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

1 个答案:

答案 0 :(得分:3)

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都可以。