[Seaside] #render: or #call: components.

John Thornborrow john at pinesoft.co.uk
Mon Apr 28 14:27:15 UTC 2008


Yes, that was what I intended, my example was merely a demonstration of 
#onAnswer:

John.

Lukas Renggli wrote:
>>  MyParentComponent>>renderContentOn: html
>>   html render: (
>>     ChildComponentA new
>>       onAnswer: [ :val | self answer: val ];
>>       yourself).
>>   html render: (
>>     ChildComponentB new
>>       onAnswer: [ :val | self answer: val];
>>       yourself)
> 
> No component instantiation in the render method! Like this you get new
> components every time you hit refresh or perform an action on the
> page. This certainly does not work as expected.
> 
> You probably want something like this:
> 
> MyPageComponent>>initialize
>     super initialize.
>     childA := ChildComponentA new
>        onAnswer: [ :val | self answer: val ];
>        yourself.
>     childB := ChildComponentB new
>        onAnswer: [ :val | self answer: val ];
>        yourself.
> 
> MyPageComponent>>children
>     ^ Array with: childA with: childB
> 
> MyPageComponent>>renderContentOn: html
>     html render: childA.
>     html render: childB
> 
> Lukas
> 

-- 
John Thornborrow
http://www.pinesoft.co.uk


******************************************************************************************************************************************
This email is from Pinesoft Limited. Its contents are confidential to the intended recipient(s) at the email address(es) to which it has been addressed. It may not be disclosed to or used by anyone other than the addressee(s), nor may it be copied in anyway. If received in error, please contact the sender, then delete it from your system. Although this email and attachments are believed to be free of virus, or any other defect which might affect any computer or IT system into which they are received and opened, it is the responsibility of the recipient to ensure that they are virus free and no responsibility is accepted by Pinesoft for any loss or damage arising in any way from receipt or use thereof. *******************************************************************************************************************************************


Pinesoft Limited are registered in England, Registered number: 2914825. Registered office: 266-268 High Street, Waltham Cross, Herts, EN8 7EA


More information about the seaside mailing list