A part necessarily has to be an independent context: Hobo needs to be able to render the part in isolation -- after all, when you update it, that's all it's rendering.
So I don't think it's your context that's shifted, it's just that you lost your local variables. You have to explicitly tell Hobo about local variables: http://hobocentral.net/manual/ajax#local-variables Bryan On Tue, Jan 14, 2014 at 2:47 PM, Tim Griffin <[email protected]> wrote: > Mystery solved. > > I found the culprit: my use of a "part" attribute on the div that > contained the tag trying to reference the attribute of the enclosing tag. > And, not having included this little detail in my original posting, that > suggests why, Ignacio, you were not able to reproduce the same issue. > > So, in my full example, I should have shown my use of the part attribute: > > <def tag="plans" attrs="showspecialcontrols"> > <div part="special_plans" > <my-table-plus:plans fields="plan_no, plan_type" showmycontrols=" > &showspecialcontrols"> > ... > </div > </def> > > Including the "part" attribute shifted the context for my subsequent tag > my-table-plus. > > Since I've just hit this very same problem with another example, I would > really love to know *why the "part" attribute shifts context*. And, how > is specifying "part" any different than simply tagging the <div> with an ID > and using the updates="#div1,#div2" syntax. *Is "part" now an antiquated > way of doing things?* > > Tim > > > > > On Mon, Jan 13, 2014 at 8:54 PM, Tim Griffin <[email protected]>wrote: > >> Hey Kevin: >> Good idea, but that just produces: >> >> undefined method `showspecialcontrols' for nil:NilClass >> >> Hey Ignacio: >> How odd that you can't reproduce it. I'm currently using Hobo 2.0.1 - is >> there anything in a later version that would have altered this behaviour? >> >> So, evidently when calling my-table-plus:plans there is no "parent" >> (which I guess makes sense). >> >> Deeper in my own definition of my-table-plus, I pass an attribute on as a >> value to another custom tag with no problem (as do many other Hobo tags). >> This >> difference here, is that the call to <my-table> doesn't shift the context. >> >> <def tag="my-table-plus" attrs="sort-field, sort-direction, sort-columns, >> showspecialcontrols" > >> ... >> <my-table showspecialcontrols="&showspecialcontrols" ....> >> <field-heading-row:> >> >> But, I'm curious why you can't replicate the behaviour....! >> >> Tim >> >> >> >> On Mon, Jan 13, 2014 at 3:05 PM, kevinpfromnm <[email protected]>wrote: >> >>> Have you tried using this_parent.showspecialcontrols? >>> >>> >>> On Sunday, January 12, 2014 8:32:10 AM UTC-7, Tim Griffin wrote: >>>> >>>> Hi all, >>>> >>>> This may seem really basic, but it tripped me up for a while because >>>> I'd forgotten a basic Hobo tenet: *Always be aware of context*. >>>> >>>> I'd defined a tag that calls another custom tag as follows: >>>> >>>> <def tag="plans" attrs="showspecialcontrols"> >>>> <my-table-plus:plans fields="plan_no, plan_type" showmycontrols="& >>>> showspecialcontrols"> >>>> ... >>>> </def> >>>> >>>> >>>> But, for the longest time, the highlighted attribute call generated: >>>> >>>> undefined method `showspecialcontrols' for #<#<Class:... >>>> >>>> It took me a while to realize/remember that by including "plans" in my >>>> call to <my-table-plus:> I'd shifted the context for the attribute I'd >>>> passed in. Hobo was now looking for a *showspecialcontrols* method on >>>> a plan, which didn't exist. >>>> >>>> Unless someone can contribute an alternate solution, I couldn't see a >>>> way around this without assigning the *showspecialcontrols* attribute >>>> to an instance variable: >>>> >>>> <def tag="plans" attrs="showspecialcontrols"> >>>> >>>> <!-- We need an instance variable here otherwise context is confused >>>> within call to my-table-plus --> >>>> <% @show = showspecialcontrols %> >>>> >>>> <my-table-plus:plans fields="..." showmycontrols="&@show"> >>>> >>>> >>>> Tim >>>> >>>> >>>> >>>> >>>> >>>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "Hobo Users" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/hobousers/aHVmZTwPKn4/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/hobousers. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >> >> > -- > You received this message because you are subscribed to the Google Groups > "Hobo Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/hobousers. > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message because you are subscribed to the Google Groups "Hobo Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/hobousers. For more options, visit https://groups.google.com/groups/opt_out.
