This was a change in Mason 1.1:

- ** The base_comp is now changed for each component call, unless that
component call uses a component object for its first argument, or the
call starts with SELF: or PARENT:.

It was controversial at the time, for this reason...

If what you want in submit_notice is always the top level component,  
you can use

     $m->request_comp->attr('submit_notice_message')

Jon

On Jul 22, 2009, at 4:57 PM, Donald French wrote:

> My apology... I accidentally hit send. Here is my full message.
>
> I have been tasked with upgrading our Mason install from 1.02 to the  
> latest version (1.4.2) and all went smoothly until I tried to access  
> certain components that appear to be missing their inheritance  
> chain. Keep in mind this all worked in the old 1.02 version.
>
> I have a component (/_styles/_top_level) that contains...
>
> <% $m->call_next() %>
>
> <& /_methods/_submit_notice &>
>
> <%attr>
> submit_notice_message => "Your request is being processed..."
> </%attr>
>
> In the child component (/_method/_submit_notice) I have...
>
> <div id="submit_notice">
>   <% $m->base_comp->attr('submit_notice_message') %>
> </div>
>
> The child component simply accesses the attribute defined in the  
> calling component however when I run this I get this Mason error:
>
> "no attribute 'submit_notice_message' for component /_methods/ 
> _submit_notice [html]"
>
> If I Dumper the $m->base_comp component I can see that the /_method/ 
> _submit_notice component is the object that is having ->attr()  
> called on it and I can additionally see that in the code_cache the / 
> top_level component is referenced and it contains an attr hash with  
> the correct string in it.
>
> The really strange part however if that if I loop through the $m- 
> >callers() array and print out the component stack and their attr  
> hashes I get:
>
> PATH: /_methods/_submit_notice
> ATTRS: $VAR1 = {};
>
> PATH: /_styles/_top_level:top_matter
> ATTRS: $VAR1 = {};
>
> PATH: /autohandler
> ATTRS: $VAR1 = {
>   'hide_environment_bar' => '0',
>   'escape_from_iframe' => 1
> };
>
> The attr hash is empty for /_styles/_top_level this case. I am not  
> sure this is relevant but I am mentioning it in case someone else  
> has also encountered this issue.
>
> Thanks for any help!
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Mason-users mailing list
> Mason-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mason-users


------------------------------------------------------------------------------
_______________________________________________
Mason-users mailing list
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users

Reply via email to