[Seaside] #render: or #call: components.
stephane ducasse
stephane.ducasse at free.fr
Tue Apr 29 06:02:54 UTC 2008
then your children should return this new component.
stef
On Apr 29, 2008, at 2:43 AM, David Zmick wrote:
> I know that this is probably a very bad practice, but I have
> initialized component, eg. a instance variable 'bodyComp'
>
> ok, I will show some code:
>
> RootComponent>>initilaize
> super initialize.
> self bodyComp: BodyComponent new.
>
> RootComponent>>renderContentOn: html
> "all the head stuff"
> bodyComponent renderContentOn: html
> "etc."
>
> I was wonderering how this was "correctley" done the other day, so
> I'm glad this thread popped up.. What is bad about my method, if
> anything, I just think it seems a little hackish...
> ty
>
>
>
> On Mon, Apr 28, 2008 at 9:27 AM, John Thornborrow
> <john at pinesoft.co.uk> wrote:
> 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
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
>
> --
> David Zmick
> /dz0004455\
> http://dz0004455.googlepages.com
> http://dz0004455.blogspot.com
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
More information about the seaside
mailing list