2017-12-22 4 views
0

내가하고 싶지 :knockoutjs가있는 클릭 기능에서 고정 매개 변수를 전달하는 방법은 무엇입니까?

<button type="button" data-bind="click: myFunction(1)" </button> 
    <button type="button" data-bind="click: myFunction(2)" </button> 
    <button type="button" data-bind="click: myFunction(3)" </button> 

을하지만 페이지가 시작이마다 할 경우,이 함수는 triggered.I이 원하지 않는 것입니다, 나는 내가

+3

참고 2 : 이벤트 객체 액세스 또는 더 많은 매개 변수 전달 http://knockoutjs.com/documentation/click-binding.html –

+0

@PaulAbbott 동일한 예제를 만들었지 만 페이지를로드 할 때 여전히 실행됩니다. .. pls help – joeyanthon

+1

함수 자체가 아닌 함수 결과에 바인딩되어 있기 때문에 페이지를로드 할 때 실행 중입니다. myFunction을'click : function() {myFunction (3)} '과 같은 또 다른 익명 함수 정의로 래핑 할 수 있습니다. @PaulAbbott이 언급 한 것입니다 –

답변

2

을 클릭 때 트리거 할 을 사용하면 click 바인딩에서 트릭을 수행합니다. 이 작업을 시도 할 수 있습니다 : 같이보기 모델에 정의 된 myFunction

<button type="button" data-bind="click: myFunction.bind($data, 1)">one</button> 
<button type="button" data-bind="click: myFunction.bind($data, 2)">two</button> 
<button type="button" data-bind="click: myFunction.bind($data, 3)">three</button> 

:

self.myFunction = function(n) { 
    alert(n); 
} 

경고는 페이지 로딩에 실제 버튼 클릭에 대한 응답으로 발사되지만되지 않습니다.

self.myFunction 정의에는 단 하나의 매개 변수가 있지만 myFunction.bind($data, 1)에는 추가로 $data 인수가 있어야합니다.

관련 문제