In our Ember 0.9 app, we have the following:
- models, which are in charge of data transport; some also have a bit of stateful logic that comes into play during their lifecycle
- controllers, which coördinate collaboation among models; they have lots of logic about when to expire things, how to pass models around to various other controllers, and views, etc.
- views, which express properties in a compound fashion (e.g. combining two properties from a controller or model into a new property), apply internationalization to properties from models and controllers, and handle events; some views also have a little bit of DOM expression in them (e.g. wrapping a property in a tag and inserting the result into an internationalization template)
- templates, which combine view properties with complex DOM expressions
In 1.0, from what I understand,
- models stay about the same
- some of the logic we have in controllers moves to routes; some stays where it is
- there is a deëmphasis on writing custom views; instead, what we now have in the view moves to controllers
- templates stay about the same
But pushing things like “putting a property into a tag and inserting the result into an internationalization template” are very different from “applying save logic.” It seems weird to me to have both of those in the controller level.
So my question is: should there be another level? Perhaps a Presenter?