Emberjs对象避免切换案例方法哈希

时间:2013-01-16 15:01:07

标签: ember.js

我有一个Ember对象有几个动作:

MyObject = Ember.Object.extend {
 action1: ->
  console.log "do 1"

 action2: ->
  console.log "do 2"
}

我想根据某些情况调用其中一个动作。简单的方法是 检查此情况并使用ifswitch-case调用所需条件。但是,我需要一些更具可伸缩性的东西,比如我的对象中的方法哈希,并通过发送他们的名称来调用所需的方法,如object.exec('action1')

ember对象是否已具有此功能?

1 个答案:

答案 0 :(得分:0)

这是javascript中动态方法调用方法的快速实现。

var obj = {
 action1 : function(item) {
    return item;
 }, 
 action2 : function(item) { 
    return item;
 }, 

 exec:function(name){
    if(this[name] ==== 'undefined') return;
    var args = Array.prototype.slice.call(arguments);
    return this[name](args.slice(1,args.length))
 }
}

obj.exec('action1','Hello')
obj.exec('action2','World')

Should return Hello World