ember/avoid-using-needs-in-controllers

January 29, 2026 ยท View on GitHub

๐Ÿ’ผ This rule is enabled in the โœ… recommended config.

Avoid using needs to load other controllers. Inject the required controller instead. needs was deprecated in ember 1.x and removed in 2.0.

Examples

Examples of incorrect code for this rule:

export default Controller.extend({
  needs: ['comments'],
  newComments: alias('controllers.comments.newest'),
});

Examples of correct code for this rule:

import Controller, { inject as controller } from '@ember/controller';

export default Component.extend({
  comments: controller(),
  newComments: alias('comments.newest'),
});

Help Wanted

IssueLink
โŒ Missing native JavaScript class support#560