2014-11-05 3 views
1

YouTube 동영상을 재생 목록에 추가하는 웹 애플리케이션을 만들고 있습니다. 사용자의 현재 재생 목록을 포함하는 비디오의 축소판 옆에 선택이 표시되고 사용자가 제출 단추를 클릭하면 현재 비디오가 선택한 재생 목록에 추가됩니다. 그러나 콜백이 실행되지 않는 문제가 발생합니다. 대답은 간단하다 만약 내가 문제가 어디에서 오는 볼 수 없기 때문에 내가 사과 :콜백이 실행되지 않는 이유는 무엇입니까? - 스몰 토크

html form with: 
    [html select with: 
        self session getPlaylists keysDo: 
        [:k | html option value: k; with: [html text:k]]]; 
       callback: [:v | self session addVideo: ((searchRes at: 'items') 
           at: (i*2+x)) toPlaylist: v. Transcript show: 'call']. 
    html break. 
    html submitButton class:'tiny button';value: 'Add to Playlist'] 

죄송합니다, 코드가 지저분 내기이다. 기본적으로 콜백은 실행되지 않습니다 (양식을 제출할 때 '전화'가 성적표에 인쇄되지 않기 때문에이 사실을 알고 있습니다). 모든 설명이 크게 감사드립니다.

+0

해변가를 이용하고 있습니까? 간단한 양식으로 문제를 재현하고 선택할 수 있습니까? 왜 WASelectTag >> list :'를 사용하여 객체를 전달하고'WASelectTag >> label'을 사용하여 각 요소에 대한 레이블 블록을 지정하십시오 (훨씬 깔끔합니다). –

답변

2

with: 블록의 위치가 잘못 되었기 때문입니다. 해변에서, with:은 html 캔버스를 사용할 때 마지막 단계의 메시지입니다. 좀 더 상세하게

: 슈퍼 그렇게 콜백이 서버가 귀하의 브라우저에 보내는 응답 문서에 기록되지 않습니다 WABrush>>with:

WABrush>>with: 
    with: aBlock 
    canvas nest: aBlock. 
    closed := true 

에 대한 호출이

WATagBrush>>with: anObject 
"Render anObject into the receiver. Make sure that you call #with: last in the cascade, as this method will serialize the tag onto the output document." 

    self openTag. 
    super with: [ 
     self before. 
     canvas render: anObject. 
     self after ]. 
    self isClosed 
     ifFalse: [ self closeTag ] 

.