ViewModel의 submitForm
메서드를 form
다음과 같이 내 요소에 바인딩했습니다 .
<form action="#" method="post" data-bind="submit: submitForm">
내 ViewModel은 다음과 같습니다.
function ViewModel() {
this.submitForm = function (data, event) {
console.log(event); //undefined
};
}
ko.applyBindings(new ViewModel());
내 양식을 제출하면, 위의 핸들러는 발사되지만 event
입니다 undefined
. 위의 코드 는 다음과 같은 문서 를 기반으로합니다 .
참고 2 : 이벤트 객체에 액세스하거나 더 많은 매개 변수 전달
일부 시나리오에서는 클릭 이벤트와 관련된 DOM 이벤트 개체에 액세스해야 할 수 있습니다. Knockout은 다음 예제와 같이 이벤트를 함수에 두 번째 매개 변수로 전달합니다.
<button data-bind="click: myFunction">
Click me
</button>
<script type="text/javascript">
var viewModel = {
myFunction: function(data, event) {
if (event.shiftKey) {
//do something different when user has shift key down
} else {
//do normal action
}
}
);
ko.applyBindings(viewModel);
</script>
참고 : 위의 구문 오류는 KnockoutJS 예제에서 그대로 복사되었습니다. 나는 그것이 실수라고 생각하고 명백한 수정으로 인해 코드가 문서화 된대로 작동해야한다고 가정합니다.
이 코드 샘플과 문서의 인용문은 내가 말할 수있는 한 위에서 작성한 내용을 모방 한 것입니다. 그러나 이 jsFiddle에서 볼 수 있듯이 , event
이다 undefined
.
event
제출 처리기 의 개체에 액세스하려면 어떻게 해야합니까?내가 click
바인딩 문서를 참조한 이유를 궁금해하는 사람들을 위해 다음과 같은 submit
바인딩 문서 에서 지시를 받았습니다 .
제출 핸들러 함수에 추가 매개 변수를 전달하는 방법 또는보기 모델에없는 함수를 호출 할 때 this 핸들을 제어하는 방법에 대한 정보는 클릭 바인딩과 관련된 참고 사항을 참조하십시오. 해당 페이지의 모든 참고 사항은 제출 핸들러에도 적용됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다