0

いくつかのアクションを持つ Ember オブジェクトがあります。

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

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

いくつかの条件に応じて、これらのアクションのいずれかを呼び出したいと思います。if簡単な方法は、この条件をチェックし、またはを使用して必要な条件を呼び出すことですswitch-case。しかし、オブジェクト内のメソッドのハッシュのようなよりスケーラブルなものが必要であり、必要なメソッドをobject.exec('action1').

ember オブジェクトにはすでにこの機能がありますか?

4

1 に答える 1

0

これは、動的メソッドの call メソッドを 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
于 2013-01-23T21:13:28.030 に答える