Tried using a mixin on the zone returned. I wanted to see if I could just return my component on BeforeRenderTemplate. I guess, though, that the zone has to have my component defined (which however would cause the recursion detection to fire), because I get an error on initial page load, complaining that the zone does not define the component.
At this point, I think this is a bug in Tapestry, because the recursion detection logic shouldn't necessarily use what's in <t:block>. I understand the whole reason it's there is to avoid infinite loops, but at the same time I should be able to do this, since I'm not actually doing recursion. It's like I want a: <t:block recursion="ignore"> ownedthx wrote: > > The injected page 'trick' probably is not going to work. the action > attribute of the form, unsuprisingly, points back to the path of that > injected page; not where the form is in the page actually using this block > from the injected page. Understandable. > > Maybe I can return the component as the response to a render phase method. > That should also avoid recursion detection. Just have to try I guess. > > Seth > > > ownedthx wrote: >> >> Hi all, >> >> Tapestry doesn't allow nested components. Ok, no problem. >> >> However, there is a situation where, say in component A's template, that >> I want to define a block which has a reference to component A--but I'll >> only call that component in a Zone update via Ajax. In other words, >> there isn't actually recursion going on, because in a full page refresh, >> the block isn't rendered, and when the zone is updated with Ajax, the >> component is rendered but that's OK because it's parent isn't being >> rendered. >> >> Regardless, Tapestry get's mad, warning me about recursion if I put that >> block in the page. Ok, fine, so I try to get around that. I have an >> approach that works ... almost: I made a 'worker' page, which has >> nothing but a block defined--the block with the component A. I then >> inject that page into my component, (using @InjectPage) and then on Ajax >> request to my component, I use a public getter to retrieve the block from >> this injected page, and return that. >> >> I'm having some sort of issue though; if that block from the injected >> page contains a form, and I then submit that form, tapestry throws an >> exception; I believe the path in the action attribute on the form does >> not correctly point to a component. Still debugging that. >> >> Are there other ways to avoid Tapestry recursion detection in this >> scenario? >> >> Regards, >> Seth >> > > -- View this message in context: http://n2.nabble.com/Avoiding-recursion-detection-in-ajax-situations-tp3681731p3681839.html Sent from the Tapestry Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org