Geoff,

AFAIK, JavascriptSupport is only available at render time and ajax render
doesn't start until after your event handler returns something. I think
it's because tapestry doesn't know what will need to be rendered yet.

For your second question, I think you can achieve what you want if you pass
arguments to your invoke :

javaScriptSupport.require("components/MyTimer").invoke("
showTimer").with(true);

It may be a nasty workaround but it works ;)

Charles.

2014-11-17 7:48 GMT+01:00 Geoff Callender <
geoff.callender.jumpst...@gmail.com>:

> Chris, It looks like the "rule of thumb" that I stated was wrong. I've
> just used JavaScriptSupport#require in some AJAX event handlers.
>
> Can someone explain under what circumstances we have to use
> AjaxResponseRenderer#addCallback instead of JavaScriptSupport#require ?
>
> Is it something to do with queueing requests? For example I noticed a
> limitation of using require. This...
>
>
> javaScriptSupport.require("components/MyTimer").invoke("showTimer");
>
> javaScriptSupport.require("components/MyTimer").invoke("hideTimer");
>
> javaScriptSupport.require("components/MyTimer").invoke("showTimer");
>
> ...resulted in only 2 invocations in the response to the client...
>
> {
>   "_tapestry" : {
>     "inits" : [
>       "components/MyTimer:showTimer",
>       "components/MyTimer:hideTimer"
>     ]
>   }
> }
>
> Geoff
>
>
> On 14 Nov 2014, at 3:23 pm, Geoff Callender <
> geoff.callender.jumpst...@gmail.com> wrote:
>
> > I don't think so. I believe the rule of thumb is to use
> JavaScriptSupport during render, and use an AJAX callback during partial
> page render.
> >
> > IIRC, the JavaScriptSupport environmental is not available when you're
> handling an AJAX component event request.
> >
> > On 13 Nov 2014, at 6:08 pm, Chris Poulsen <mailingl...@nesluop.dk>
> wrote:
> >
> >> can't you just use javascriptsupport to require and invoke your js
> module
> >> function?
> >>
> >> --
> >> Chris
> >>
> >> On Thu, Nov 13, 2014 at 6:34 AM, Geoff Callender <
> >> geoff.callender.jumpst...@gmail.com> wrote:
> >>
> >>> Have you had a look at these two:
> >>>
> >>>
> >>>
> http://jumpstart.doublenegative.com.au/jumpstart7/examples/javascript/modal/1
> >>>
> >>>
> http://jumpstart.doublenegative.com.au/jumpstart7/examples/javascript/reusablemodal/1
> >>>
> >>> Do they fit your scenario?
> >>>
> >>> On 13 Nov 2014, at 3:40 pm, Paul Stanton <pa...@mapshed.com.au> wrote:
> >>>
> >>>> Hi Geoff,
> >>>>
> >>>> I have found your examples invaluable in learning some of the basics
> of
> >>> this (and other) concepts. I can't thank you enough
> >>>>
> >>>> .. the only thing I can see is missing currently is the example I
> asked
> >>> about in the previous mail:
> >>>>
> >>>> Basically, how do I interact with a js module instance after it is
> >>> created?
> >>>>
> >>>> pretend some server-side state changes between afterRender and
> >>> onSomeEvent, and the client needs to react accordingly.
> >>>>
> >>>> jss.addScript is deprecated, so I "shouldn't" be telling the client to
> >>> execute script apparently...
> >>>>
> >>>> cheers, p.
> >>>>
> >>>> On 13/11/2014 2:36 PM, Geoff Callender wrote:
> >>>>> do these examples cover the situations you are describing?
> >>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> >>>> For additional commands, e-mail: users-h...@tapestry.apache.org
> >>>>
> >>>
> >>>
> >
>
>

Reply via email to