In AngularJS the term "Dependency Injection" gets thrown around a lot.
Many people understand it to mean "throw a dollar sign in front of variable and it pulls that module from the standard library, regardless of the order of the arguments". That's just because angular happens to use dependency injection behind-the-scenes, so they advertise that they use it, but that particular mechanic is just a mechanic (automatic constructor dependency injection in javascript), not the pattern.
Example:
because
function ($foo, $bar, $baz) {
// ...
}
is the same as this
function ($bar, $baz, $foo) {
// ...
}
people say "AH! dependency injection!"
FALSE: This is NOT Dependency Injection.
You can implement such a mechanic while completely ignoring the pattern dependency injection.
Dependency injection is a design pattern that could just as well be implemented with RequireJS and, with a little thinking, CommonJS meaning that instead of the module which needs 'foo', 'bar', and 'baz' getting them directly, it accepts them.
This Java example makes the concept more clear: