Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在marionetteJS应用程序对象中是否有一种方法可以聚合通风事件?_Javascript_Backbone.js_Marionette - Fatal编程技术网

Javascript 在marionetteJS应用程序对象中是否有一种方法可以聚合通风事件?

Javascript 在marionetteJS应用程序对象中是否有一种方法可以聚合通风事件?,javascript,backbone.js,marionette,Javascript,Backbone.js,Marionette,木偶中有没有一种方法可以聚合事件 我的意思是,改变这一点要容易得多: MyApp.vent.on("taskMoved", function(moveData){ // taskId, fromBucketId, toBucketId, order, $li moveTask(moveData.taskId,moveData.fromBucketId, moveData.toBucketId, moveData.ord

木偶中有没有一种方法可以聚合事件

我的意思是,改变这一点要容易得多:

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


这可以做到吗?

你可以写一个方法来做到这一点,但就我用木偶所做的工作来看,你不能

但是,您可以执行以下操作:

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))

这是一个好主意,如果您想使用vent作为“代理/中介”

显然,您希望将其作为对象的一部分,其中包含绑定这些事件的方法…:)当然可以-我想让chrome的控制台开心;-)