existe uma maneira no objeto de aplicativo marionetteJS de agregar eventos de ventilação?

StackOverflow https://stackoverflow.com//questions/12712072

Pergunta

existe uma maneira na marionete de agregar eventos?

quero dizer, seria muito mais fácil mudar isso:

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

nisso:

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

semelhante ao objeto de evento BackboneView.

isso pode ser feito?

Foi útil?

Solução

Você poderia escrever um método que fizesse isso, mas pelo que posso perceber pelo meu trabalho com Marionette, você não pode.

No entanto, você poderia fazer algo como:

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

Passe esse hash e ele ativará todos eles para você.

Outras dicas

Se você deseja vincular a todos os eventos de ventilação, tente:

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

esta é uma boa ideia, se você quiser usar o vent como um "proxy/mediador"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top