The most crucial task performed by a controller in Ember.js is decorating the model, which is returned by the route. In Ember.js, it is handled by controllers. It is not always necessary that only a single controller performs this task, but there may be required multiple controllers depending on the task itself. Besides this, there are many actions that users perform, and listening to these actions is also the responsibility of the controllers in Ember.js.