ベントイベントを集約するためのMarionetteJSアプリケーションオブジェクトにはありますか?

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

質問

イベントを集約するためのマリオネットにはありますか?

これを変更するのははるかに簡単だろうということです:

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

「プロキシ/メディエータ」としてベントを使用したい場合は、これは良い考えです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top