Since it uses the Handlebars templating language out of the box, it should feel familiar and easy to use to developers already used to Handlebars or similar templating engines.
Routing helps the application keep track of the state of the application. Routing represents each state of the application as a URL and can perform simple and accurate state queries via the route handlers.
With help from the integrated Handlebars templates and JavaScript to implement custom behaviour, EmberJS allows the use of components to create app-specific HTML tags.
In comparison to the other JavaScript application frameworks, EmberJS has a large framework size. This resulting in a sizeable download of the script upon arrival to the application, causing overhead to the client's system.
There is a lot of outdated content and examples that no longer work with EmberJS because the core of the framework changed a lot before it was stabilized. This makes it confusing for developers who are trying to develop an application with the framework.