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에서 상당히 새롭기 때문에 어리석은 질문과 끔찍한 코드로 참을성있게 기다려주세요. (이것은 내 첫 번째 어플리케이션입니다. 어떤 제안이라도 환영합니다).
위의 "접근 방법"은 무엇입니까? 더 구체적으로 말하십시오. 또한 가능한 경우 일부 코드를 게시하십시오. –
@MaxLeske 나는 제안 된대로 질문을 편집했다. 지금은 더 명확 해지기를 바랍니다. – max
훨씬 더 :). 어떤 해변 버전을 사용하고 있습니까? 'tbs '접두사는 무엇입니까? (나는 더 새로운 추가에 아주 익숙하지 않다). 나는'MCVehicleLookupComponent'에 대한 렌더링 코드를 보지 못했지만 여러분이 말한 것처럼 괜찮다고 생각합니다. '#lookupCallback :'에 전달 된 블록에 정지를 넣고 트리거되는지 확인하십시오. –