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]

Reply via email to