在Marionette中有一种方法可以聚合事件?

我的意思是改变这个更容易:

           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事件对象类似。

这可以完成吗?

有帮助吗?

解决方案

你可以写一个这样做的方法,但据我所知,我不能与marionette讲述,你不能。

但是,你可以做一些这样的事情:

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

通过该哈希,它将为您打开它们。

其他提示

如果要绑定到所有文档事件,请尝试:

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

这是一个好主意,如果你想用通风口作为“代理/介质”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top