Victor Leung
Victor Leung
BlogFlower shop

Ember Inject Controller

October 09, 2015

The problem I got:

Just updated the Ember project to v1.13.5, and received this warning in brower console:

> _DEPRECATION: Controller#needs is deprecated, please use Ember.inject.controller() instead_

However, I couldn’t find the documentation yet on how to write the new syntax.

Here is the Solution:

For some reason it’s marked as a private method in the docs, in order to see it you ll need to tick the private checkbox.

There are 2 ways to use it, with and without passing a controller name to it

> _App.PostController = Ember.Controller.extend({ posts: Ember.inject.controller()
> });_

When the name of the controller isn’t passed, ember uses the property name to look it up such as

posts: Ember.inject.controller(‘posts’).

You will only ever specify the controller name when the property and the controller have different names.

> _App.PostController = Ember.Controller.extend({ myPosts: Ember.inject.controller(‘posts’)
> });_

About Victor Leung

Software development professional with expertise in application architecture, cloud solutions deployment, and financial products development. Possess a Master's degree in Computer Science and an MBA in Finance. Highly skilled in AWS (Certified Solutions Architect Professional, Developer and SysOps Administrator), GCP (Professional Cloud Architect), Microsoft Azure, Kubernetes(CKA, CKAD, CKS, KCNA), and Scrum(PSM, PSPO) methodologies.

Happy to connect

Continuous improvement

Copyright © 2023.