2016-10-27 1 views
0

나는 나의 템플릿이 이벤트 핸들러를 가지고 : 당신이 볼 수 있듯이Meteor의 다른 이벤트 핸들러에 이벤트 핸들러 함수를 호출하는 방법이 있습니까?

Template.addPlayerForm.events({ 
    'submit form': function(e) { 
     e.preventDefault(); 
     var playerName = e.target.playerName.value; 
     var playerScore = e.target.playerScore.value; 
     if (playerName !== "" && playerScore !== "") { 
      Meteor.call('createPlayer',playerName,playerScore); 
     e.target.playerName.value = ''; 
     e.target.playerScore.value = ''; 
    } 
}, 
    'keypress .addScore': function(e) { 
     if (e.which >= 48 && e.which <= 57) { 
     return e.charCode; 
    } 
    else if (e.which === 13 || e.keycode === 13) { 
     e.preventDefault(); 
     var playerName = e.target.playerName.value; 
     var playerScore = e.target.playerScore.value; 
     if (playerName !== "" && playerScore !== "") { 
      Meteor.call('createPlayer',playerName,playerScore); 
     e.target.playerName.value = ''; 
     e.target.playerScore.value = ''; 
    } 
} 
}) 

'submit form''keypress .addScore' 모두가 거의 유사한 기능 (즉 데이터베이스에 새 컬렉션을 추가). 내 질문은 이벤트 처리기 모두에 전달할 수있는 단일 함수를 만들 수있는 방법이 있습니까? 나는 Meteor에 익숙하지 않고, 필자가 보았던 온라인 자습서를 연습하고 있습니다. 내가보기에 그것을 수정하기를 희망합니다. 도와 주셔서 감사합니다! : D

+0

내부를 부르지 만, 내 이해 할 수 있습니다. 넌 할 수있어. 함수를 선언하고'function() {...}'을 쓰는 대신''keypress .addScore ': functionName'을 쓰면됩니다. – Rajesh

답변

2

당신은 예, 함수를 만들고 내가 유성 잘 모르는 것 같아요 이벤트

Template.addPlayerForm.events({ 
    'submit form': function(e) { 
     funcName(e) 
    }, 
    'keypress .addScore': function(e) { 
     if (e.which >= 48 && e.which <= 57) { 
      return e.charCode; 
     } 
     else if (e.which === 13 || e.keycode === 13) { 
      funcName(e) 
     } 
    } 
}) 


funcName = function(e){ 
    e.preventDefault(); 
    var playerName = e.target.playerName.value; 
    var playerScore = e.target.playerScore.value; 
    if (playerName !== "" && playerScore !== "") { 
     Meteor.call('createPlayer',playerName,playerScore); 
     e.target.playerName.value = ''; 
     e.target.playerScore.value = ''; 
    } 
} 
+1

유행을 사용할 때 다른 방법이있을 수 있으므로이 방법에 대해 생각해 보았습니다. . 고마워요! :) –