On Tuesday, September 27, 2011 7:00:43 AM UTC-4, Noel Villamor wrote:
>
> Gotcha! Thanks for the hint Anthony.
>
> Controller:
>
> a=PluginMModal(title='Hello World',content='give this a 
> try!',close="close",width=30,height=30,id='59d38b19-05aa-4125-a19b-6e17069cd873')
> ... a.link(...)
>

a.link() does not add a 'link' attribute to the 'a' object, it actually 
returns the link itself, so simply calling the method in the controller 
without assigning the result to a variable and then passing it to the view 
will be useless. You're better off calling this method directly in the view 
-- creating the link in the controller doesn't make things any easier 
because you still have to explicitly place the link in the view (see below).

View:
>
> {{extend 'layout.html'}}
> {{=form}}
> {{a=PluginMModal(title='Hello World',content='give this a 
> try!',close="close",width=30,height=30,id='59d38b19-05aa-4125-a19b-6e17069cd873')}}
> {{=a}}
>

There is no need to create a new object in the view -- your problem is that 
although you created an object in the controller, you never passed it to the 
view. The view only gets objects that are passed to it in the dict returned 
by the controller. Also, you have to place the a.link() separately. Try 
this:

Controller:

def func():
    modal = PluginMModal(title='Hello World',content='give this a 
try!',close="close",width=30,height=30)
    return dict(modal=modal)
 
View:

{{=modal}}
{{=modal.link('Click me')}}

Anthony

Reply via email to