[Seaside] Help with understanding how #call: works
david.mitchell at gmail.com
Fri Feb 22 15:16:01 UTC 2008
Don't call in a render.
When you see call: in the renderContentOn:, it is inside a block,
which is invoked later (usually on a click). See
Don't call: from renderContentOn:
One of the most common mistakes of first-time Seaside users is to try
to call: a component from another components rendering method,
renderContentOn:. The rendering method is just for that, rendering. It
should display the state of the current component just as it is. It is
the job of callbacks to change state, call other components etc. There
is never a reason for a typical Seaside user to invoke call: during
rendering. If you want to render one component inside another one read
the chapter on Embedding components.
On Fri, Feb 22, 2008 at 9:00 AM, Squeaker <squeakman at gmail.com> wrote:
> I have two components A and B and I have the following code in A.
> renderContentOn: html
> self call: B new.
> What I was expecting is that B would be rendered.
> (I suspect that there would be problems when B answers but for this
> experiment, this was not my concern yet.)
> My question is: Why doesn't B get rendered? All I get is a blank screen.
> And, I know this a contrived example and is probably not something one
> would normally do. I just want to understand why this does not work.
> Many Thanks,
> seaside mailing list
> seaside at lists.squeakfoundation.org
More information about the seaside