2012-10-09 5 views
0

Opa To 거기 사람들은 지난 주말에이 문제에 당황했습니다.Opa : 반복 내 이벤트 핸들러로 변수 전달하기

내 View에서 수행하려는 작업은 Model 데이터 호출에서 반환 된 DBSet을 반복하고 각 레코드가 XHTML 테이블을 생성하며 클릭 이벤트 처리기에 바인딩됩니다. 이 클릭 이벤트 처리기에서 반복 된 레코드 유형의 속성을 인수 또는 레코드 자체로 허용하려고합니다. type team = { string team_id, ...etc} 필자는보기에서 가장 최근에 클릭 한 테이블 행의 값으로 입력을 채우려는 양식을 가지고 있습니다.이 행은 이벤트 처리기가하는 것입니다. 즉, 올바른 매개 변수를 전달할 수도 있습니다.

어떻게해야합니까? 나는 같은 이벤트 처리기를 바인딩 XHTML의 비트를 얻기 위해 노력하고

<tr onclick={ otherExposedFunctionIWantToCall(team) }> 

또는 내가하는 일에 의지 한 최신 일의

<tr onclick={ otherExposedFunctionIWantToCall(team.team_id) }> 

가 참조하려고하는이 내 custom type, team을 설정 한 team_id 속성에 접근 할 수 있다면.

이러한 이벤트 핸들러의 형식은 반복 코드에서 사용했을 때 컴파일 할 수 없었습니다.

왜 작동하지 않습니까? 동적 레코드를 반복하는 중 문제가 있습니까? 이러한 함수를 이벤트에 바인딩 할 수 있습니까?
오파 수행 클라이언트 측 이벤트는 이벤트 대상에 액세스 할 수있는 방법이 있습니다. 찾지 못했습니까? 내 목표를 달성하기위한 나의 선택은 무엇입니까?

누구나 내가이 질문의 일부를 이해하는 데 도움을 줄 수 있다면, 나는 많은 의무가있을 것이다!

답변

0

어리석은 저, 팀 변수가 함수의 범위 (Iterator에 전달 됨) 내에 완벽하게 들어 있다는 사실을 완전히 비 웠습니다.

내가이 작품을 발견

의 int 필드가 문자열로입니다 team_id ... 캐스팅되지 않았 밝혀졌다 이 나에게 오류를주는 유지, 반면

<tr onclick={ function(_){ setTeamView("{team.team_id}")} }> 

을 이전부터,

Expression has type 
    void 
    but is coerced into 
    FunAction.t 

<tr onclick={ setTeamView("{team.team_id}")}> 

사용자 정의 함수는 가장 먼저 제공 한 첫 번째 예제에서 알 수 있듯이 익명의 래퍼 함수로 가장 잘 래핑됩니다. team.team_id의 문자열 주조는 첫 번째 경우에만 작동했습니다.

내 생각에 다음으로 넘어갑니다!