AngularJS 1.6

1.6 released 8 December 2016, latest 1.6.10.

AngularJS 1.6 reached end of life on 31 December 2021.

What changed

AngularJS 1.6 continued the 1.x shift toward component-style applications and lifecycle hooks, while making several compatibility-affecting cleanup changes. The default hash prefix was removed, so hash-based routes no longer receive the previous default exclamation-mark prefix unless an application configures one explicitly. The legacy $http promise helpers success() and error() were removed; code must use standard then(), catch(), and finally() promise handling. Component and directive lifecycle behavior was clarified around hooks such as $onInit, making lifecycle hooks the appropriate place for initialization that depends on bound inputs rather than relying on constructor timing. Teams upgrading from earlier 1.x versions should test route URLs, HTTP error handling, and components whose controllers read bindings during construction. AngularJS is not Angular: Angular is a separate, later framework, a rewrite rather than a newer version of this one, and it is covered on its own page at /technology/angular. Teams running that newer framework should use /technology/angular instead.

What staying costs

This AngularJS cycle has reached end of life, so remaining on it means no upstream maintenance or security fixes for newly discovered framework issues. Version 1.6 also predates the final AngularJS 1.x line, leaving an application further behind on accumulated fixes and compatibility improvements within the legacy framework. The operational risk is not limited to the framework itself: aging build tooling, package dependencies, browser behavior, and third-party AngularJS modules become harder to validate and maintain over time. Continuing to use 1.6 can also preserve old routing and promise-handling assumptions that complicate a later upgrade. Moving from AngularJS 1.6 to a later AngularJS release is a maintenance bridge, not a migration to Angular; Angular requires an application migration or rewrite strategy.

What to do

First, inventory AngularJS applications, their installed AngularJS version, routing mode, custom directives and components, $http usage, browser requirements, and third-party modules. Use the 1.6 migration guidance to remove success() and error() calls, verify hash-routing behavior and externally shared URLs, and move initialization dependent on bindings into $onInit where appropriate. Add automated coverage around navigation, authentication, form validation, API failures, and high-value component interactions before changing framework versions. If short-term risk reduction is needed, plan and test an upgrade to the final AngularJS 1.x line, including compatible versions of associated packages, but treat that as a temporary stabilization step. In parallel, choose a replacement architecture and migration approach: an incremental coexistence strategy where feasible, or a bounded rewrite by application area. If the target is Angular, assess the work as a migration to the separate framework described at /technology/angular, not as an in-place AngularJS version upgrade.

See what moving on from AngularJS 1.6 involves.

See the AngularJS technology page

Not sure yet? Get my plan

We can tell you what moving off AngularJS 1.6 involves.

What it takes to move off AngularJS 1.6 depends on what you built on it — the version you are on, how much depends on it, and how much of the work is mechanical. Leave your email with this version and we can tell you what that looks like for you.