2015년 10월 16일 금요일

Template events 안에서 function 사용팁

Template events안에서 function을 쓸 때 global scope 으로 쓰는 게 싫으셨죠?

var clickProcess = function(e) {
  ...
};

Template.nono.events({
  'click .button': function(e, tmpl) {
    clickProcess(e);
    ...
  },
  'touchend .button': function(e, tmpl) {
    clickProcess(e);
    ...
  }
});
이렇게 쓰지 말고 Template.nono scope 안으로 가둡시다.
Template.nono.clickProcess = function(e) {
  ...
}
그러고 나서 event 안에선 tmpl.view.template 으로 참조하면 Template.nono 자신을 가져올 수 있습니다!
Template.nono.events({
  'click .button': function(e, tmpl) {
    tmpl.view.template.clickProcess(e);
    ...
  },
  'touchend .button': function(e, tmpl) {
    tmpl.view.template.clickProcess(e);
    ...
  }
});
더 이상 글로벌 스코프로 인한 불안에 떨지마세요~