2012-10-03 59 views
1

有沒有辦法在木偶聚集事件?有沒有辦法在marionetteJS應用程序對象中聚合發泄事件?

我的意思是這將是很容易改變這一點:

  MyApp.vent.on("taskMoved", function(moveData){ 
       // taskId, fromBucketId, toBucketId, order, $li 
       moveTask(moveData.taskId,moveData.fromBucketId, moveData.toBucketId, moveData.order, moveData.li); 
      }); 

      MyApp.vent.on("taskMovedLast", function(moveData){ 
       // taskId, fromBucketId, toBucketId, order, $li 
       moveTaskLast(moveData.taskId, moveData.fromBucketId, 99); 
      }); 

      MyApp.vent.on("taskMovedFirst", function(moveData){ 
       // taskId, fromBucketId, toBucketId, order, $li 
       moveTaskFirst(moveData.taskId, moveData.fromBucketId, 99); 
      }); 

到這一點:

{ 
"taskMoved":"moveTask", 
"taskMovedLast":"taskMovedLast", 
"taskMovedFirst":"taskMovedFirst" 
} 

類似BackboneView事件對象。

可以這樣做嗎?

回答

2

你可以寫一個方法來做到這一點,但就我從製片人的工作中可以看出,你不能。

但是,你可以這樣做:在哈希

bind_events: function(events_hash){ 
    var that = this; 
    _.each(events_hash, function(func, evt){ 
     MyApp.vent.on(evt, that[func]); 
    } 
}; 

通行證,它就會把他們都在爲您服務。

+0

好東西。謝謝;-) – Guy

+0

很明顯,你會想讓這個對象的一部分,包含你綁定這些事件的方法... :) – tkone

+0

肯定的事情 - 我想保持鉻的控制檯高興;-) – Guy

0

如果你想綁定到所有泄事件嘗試:

vent.on('all',this.trigger.bind(this)) 

這是一個好主意,如果你想使用泄作爲「代理/中間人」

相關問題