Ryan Holmes wrote:
This subject has come up in the past with no real conclusion, but it did
seem like there was consensus on at least one point. Namely, that an
If/Else/For component should automatically emulate its template tag if
the tag is anything other than a span or div (i.e. tag-dependent
rendering/emulation).
seems like a real strange thing to me. Either you render a Tag by
default or you don't, why exclude span or div? rule like "it makes that
unless..." are a good recepie for many postings in this group...
why not just take the 4.1 strategy: use renderTag=true by default?
Cheers,
Ron
I started working on a patch to implement this (thinking it might help
to at least push the discussion forward) but quickly ran into a problem
with the renderTag parameter.
If certain template tags render by default and others do not, the
meaning of the renderTag parameter becomes unclear. For instance, what
should happen if renderTag=true but the template tag is a span? If the
answer is that renderTag should take precedence, then we're back to
having to explicitly set renderTag every time we want a "pure logic"
If/Else/For (assuming renderTag defaults to true). If the tag-dependent
behavior takes precedence then renderTag is ignored in one case or the
other. Either renderTag=false is ignored for non-span/div tags or
renderTag=true is ignored for spans and divs.
The renderTags configuration property seems to only complicate the
situation. It either overrides and interferes with the tag-dependent
behavior or gets re-interpreted as "turn on tag-dependent behavior",
which leads back to the ambiguous renderTag=false case mentioned above.
So here's what I have in mind at the moment: implement the tag-dependent
behavior, remove the renderTag parameter and the renderTags property and
un-deprecate the element parameter to handle edge cases (e.g. you want a
span or div to render or you want to emulate a different tag than what's
in the template). This should give us the correct default behavior in
most cases and provide an unambiguous way to override that behavior (via
the element parameter).
What I'm advocating is clearly a "convention over configuration"
approach that might not be to everyone's taste, but it does have the
advantages of being convenient, consistent (you don't have to think
about how your component will behave with renderTags=false, etc.),
relatively simple and more backwards compatible with 4.0 than the
current behavior.
Thoughts?
-Ryan
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]