> Hi Jon,
> 
> Am 18.06.2011 um 14:23 schrieb Jonathan Swartz:
> 
>> If you just want to avoid wrapping, this is probably better:
>> 
>>   <%method render>
>>   % $.main();
>>   </%method>
>> 
>> You'll still inherit from the default parent class, so you can share 
>> methods, attributes, etc. - it's just that render will call main() instead 
>> of wrap().
>> 
>> I have an item in my todo list that says "make this easier" :), since it is 
>> such a common desire. Suggestions welcome.
> 
> what I often need is to disable wrapping if a parameter is set.  For example 
> in Catalyst, I can check if a request is an AJAX request, and if it is, I'd 
> like the header and footer to not be rendered but only the component itself.  
> How can I do this?

Just put this logic in the render method - it has access to the parameters. If 
you want wrapping, call wrap(), otherwise call main(). e.g.

  <%args>
  $.type
  </%args>

  <%class>
  method render {
      if ($.type eq 'ajax') {
          $.main();   # skip wrapping
      }
      else {
          $.wrap();   # do wrapping
      }
  }
  </%class>

Here I've moved the render method into a <%class> section since it has more 
than a few lines of Perl.

HTH
Jon


------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Mason-users mailing list
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users

Reply via email to