i can confirm. request.args always comes through, whether ajax or not.
request.vars is dependent upon ajax.
{{=LOAD('comment',
'conversation_dropdown.load',vars={'dashboard':True}, ajax=False)}}
: vars => {}
{{=LOAD('comment',
'conversation_dropdown.load',vars={'dashboard':True}, ajax=True)}}
: vars => {'dashboard': True}
{{=LOAD('comment', 'conversation_dropdown.load',args=[True],
ajax=False)}}
: args[0] => True
matt
On Oct 29, 3:09 pm, mdipierro <[email protected]> wrote:
> Without ajax the component is loaded without the current request and
> therefore there are two request objects. I guess web2py got confused.
> It is a bug and I will fix it but I have not yet tested that is the
> case.
>
> Massimo
>
> On Oct 29, 1:56 pm, Luther Goh Lu Feng <[email protected]> wrote:
>
> > Thank you. I have set ajax = True and the line works now. What is the
> > reason for this requirement?
>
> > On Oct 30, 2:52 am, mdipierro <[email protected]> wrote:
>
> > > I am not sure this works unless you do it with ajax=True. I need to
> > > check.
>
> > > On Oct 29, 1:50 pm, Luther Goh Lu Feng <[email protected]> wrote:
>
> > > > In one of my views, I loaded a component using:
>
> > > > {{=LOAD('comment',
> > > > 'conversation_dropdown.load',vars={'dashboard':True}, ajax=False)}}
>
> > > > In the action:
>
> > > > def conversation_download():
> > > > return{'test':request.vars.dashboard}
>
> > > > In conversation_dropdown.load, {{=test}} evaluates to none.
>
> > > > Have I gotten the syntax wrong somewhere?
>
>