1

テンプレートに固有で、テンプレートのイベント ハンドラーからアクセスできる関数を作成する方法はありますか? グローバル名前空間を汚染したくありません。

この問題に遭遇したのは、次のような方法でイベント ハンドラー間で多くのコードを繰り返していることに最初に気付いたときです。

Template.options.events({
    "click .btn-1": function(e) {
        // do something
        var div;
        div = $(e.target);
        if (div.hasClass("active")) {
          return div.removeClass("active");
        } else {
          return div.addClass("active");
        }
      },
    "click .btn-2": function(e) {
        // do something else
        var div;
        div = $(e.target);
        if (div.hasClass("active")) {
          return div.removeClass("active");
        } else {
          return div.addClass("active");
        }
    }
});

セレクターを組み合わせる方法を見つけようとしているわけではないことに注意してください。その方法は既に知っています。各ボタンの動作は異なりますが、数行のコードが繰り返されていることに注意してください。グローバル名前空間を汚染することなく、これを可能な限り DRY に保ちたいと考えています。

4

1 に答える 1