2017-01-31 8 views
1

해변 어플리케이션이 있습니다.스몰 토크 해변 # 콜 : 빈 페이지 렌더링

MCRootComponent>>initialize 
super initialize. 
self main: MCMainComponent new. 
MCRootComponent>>renderComponentOn:html 
renderContentOn: html 
html render: main 

이제 하위 구성 요소가 렌더링되는 외모와 같은 :

MCMainComponent>>renderContentOn: html 
html tbsForm:[ 
    html tbsContainerFluid: [ 
    html anchor 
    callback: [ self call: (MCServiceOrderComponent from: MCServiceOrder new)]; 
    with: 'New Service Order' ]] 

과 MCServiceOrderComponent :

MCServiceOrderComponent>>initialize 
super initialize. 
customerComponent := MCClienteComponent new. 
vehicleComponent := MCVehicleComponent new. 
vehicleComponent lookupCallback: [ 
    self show:(MCVehicleLookupComponent new) onAnswer:[:vehicle|  
    vehicle ifNotNil: [ 
     serviceOrder vehicle: vehicle. 
     vehicleComponent objectToRender: vehicle. 
     customerComponent objectToRender: vehicle customer ]]] 

MCServiceOrderComponent>>renderContentOn: html 
html heading level1 with: 'ServiceOrder'. 
html tbsForm with: [ 
    html render: vehicleComponent. 
    html render: customerComponent.  
] 

지금까지이 무사 렌더링 첫 번째 구성 요소는 단지 하위 구성 요소를 렌더링합니다. MCVehicleComponent에 전달되는 조회 콜백을 확인하십시오. 이 블록은 MCVehicleComponent 내부에서 렌더링 된 버튼의 콜백으로 전달됩니다.

MCVehicleComponent>>renderContentOn: html 
    self renderContainer: 'Vehicle' on: html with: [  
     self renderSearchFor: #id on: html with: self lookupCallback.     
     self renderInputFor: #maker on: html. 
     self renderInputFor: #model on: html.  
     self renderInputFor: #color on: html ] 

MCVehicleComponent>>renderSearchFor: aSymbol on: html with: aBlock 
html tbsFormGroup: [ 
     html label: aSymbol asCapitalizedPhrase. 
     html tbsInputGroup: [ 
       html textInput tbsFormControl on: aSymbol of: self objectToRender.     
         html tbsInputGroupButton: [ 
          html tbsButton callback: aBlock;      
          with: [ html tbsGlyphIcon iconSearch ] ] ]] 

MCVehicleLookupComponent에 #call :을 지정하고 결과를 되돌려 보내야합니다. 그러나 실제로 #call이 만들어진 즉시 페이지 내용이 비어 있습니다. MCMehComponent에서 MCVehicleLookupComponent를 직접 호출 해 보았습니다. 문제가 없다는 것을 알았습니다. 이 문제를 일으킬 수있는 아이디어가 있습니까?

저는 smalltalk에서 상당히 새롭기 때문에 어리석은 질문과 끔찍한 코드로 참을성있게 기다려주세요. (이것은 내 첫 번째 어플리케이션입니다. 어떤 제안이라도 환영합니다).

+0

위의 "접근 방법"은 무엇입니까? 더 구체적으로 말하십시오. 또한 가능한 경우 일부 코드를 게시하십시오. –

+0

@MaxLeske 나는 제안 된대로 질문을 편집했다. 지금은 더 명확 해지기를 바랍니다. – max

+0

훨씬 더 :). 어떤 해변 버전을 사용하고 있습니까? 'tbs '접두사는 무엇입니까? (나는 더 새로운 추가에 아주 익숙하지 않다). 나는'MCVehicleLookupComponent'에 대한 렌더링 코드를 보지 못했지만 여러분이 말한 것처럼 괜찮다고 생각합니다. '#lookupCallback :'에 전달 된 블록에 정지를 넣고 트리거되는지 확인하십시오. –

답변

0

나는 밖으로 잘못된 구성 요소를 불러 냈다. 모든 것이 매력으로 작용합니다. 죄송합니다.