Do you know how you can run angularJS and angular side by side?

Technology CommunityCategory: AngularDo you know how you can run angularJS and angular side by side?
VietMX Staff asked 3 years ago

In order to run both frameworks side-by-side and make components interoperable, the Angular projects comes with a module ngUpgrade. The module basically acts as an adapter facade, so we don’t really feel that there are two frameworks running side-by-side.

For this to work, four things need to interoperate:

  • Dependency Injection – Exposing Angular services into Angular 1.x components and vice-versa.
  • Component Nesting – Angular 1 directives can be used in Angular 2.x components and Angular 2.x components can used Angular 1 directives
  • Content Projection / Transclusion – Angular 1 components transclude Angular 2.x components and Angular 2.x component project Angular 1 directives
  • Change Detection – Angular 1 scope digest and change detectors in Angular >= 2.x are interleaved

Here’s what a typical upgrade process would look like:

  • Include Angular and upgrade module
  • Pick component to upgrade and change its controller and template Angular 2.x syntax (this is now an Angular 2.x component)
  • Downgrade Angular 2.x component to make it run in Angular 1.x app
  • Pick a service to upgrade, this usually requires little amount of change (especially if we’re on ES2015)
  • Repeat step 2 and 3 (and 4)
  • Replace Angular 1 bootstrap with Angular 2.x bootstrap