Oversimplified explanation of context switching deprecation


The http://emberjs.com/guides/deprecations/ page joyfully claims:

“In preparation for further work on HTMLBars, the context switching form of {{each}} is deprecated. This is mostly a “mechanical” refactor and drammatically simplifies how to think about the context in your templates. This change should be entirely mechanical.”

I guess that is an oversimplification. First of all, “mostly” or “entirely” mechanical? I guess none, since when the context switching form is used the template does not offer any clues on what comes from the switched context and what comes from the item controller. Thus, following the advice and mechanically appending the “person.” from the “person in people” to everything will result in errors. I guess wording should be changed somehow to explain that the deprecation is less mechanical and more useful.


It is odd to reply to myself, but it looks like the named parameter form also affects the item controller, thus truly mechanical addition of the parameter prefix should always work unless a naming conflict is created. This evidently could be explained better. I still cannot tell how “this” should look if each references an array of primitives.