angular/modules/@angular/upgrade/test/static/integration
George Kalpakas 07122f0ad9 fix(upgrade): populate upgraded component's view before creating the controller (#14289)
Previously, the relative order of the AngularJS compiling/linking operations was
not similar to AngularJS's, resulting in inconsistent behavior for upgraded
components (which made upgrading to Angular less straight forward).

This commit fixes it, by following the compiling/linking process of AngularJS
more closely.

Main differences:

- The components view is already populated when the controller is instantiated
  (and subsequent hooks are called).
- The correct DOM content is available when running the `$onChanges`, `$onInit`,
  `$doCheck` hooks. Previously, the "content children" were still present, not
  the "view children".
- The same for pre-linking.
- The template is compiled in the correct DOM context (e.g. has access to
  ancestors). Previously, it was compiled in isolation, inside a dummy element.

For reference, here is the order of operations:

**Before**

1. Compile template
2. Instantiate controller
3. Hook: $onChanges
4. Hook: $onInit
5. Hook: $doCheck
6. Pre-linking
7. Collect content children
8. Insert compiled template
9. Linking
10. Post-linking
11. Hook: $postLink

**After**

1. Collect content children
2. Insert template
3. Compile template
4. Instantiate controller
5. Hook: $onChanges
6. Hook: $onInit
7. Hook: $doCheck
8. Pre-linking
9. Linking
10. Post-linking
11. Hook: $postLink

Fixes #13912
2017-03-07 09:32:52 -08:00
..
change_detection_spec.ts feat(upgrade): return a function (instead of array) from downgradeInjectable() (#14037) 2017-02-01 09:29:51 -06:00
content_projection_spec.ts test(upgrade): test projection on downgraded components with structural directives (#14276) 2017-02-03 15:08:26 -06:00
downgrade_component_spec.ts fix(upgrade): pass correct values to ngOnChanges for interpolation bindings (#14301) 2017-02-07 12:45:14 -06:00
examples_spec.ts feat(upgrade): return a function (instead of array) from downgradeInjectable() (#14037) 2017-02-01 09:29:51 -06:00
injection_spec.ts feat(upgrade): return a function (instead of array) from downgradeInjectable() (#14037) 2017-02-01 09:29:51 -06:00
testability_spec.ts feat(upgrade): return a function (instead of array) from downgradeInjectable() (#14037) 2017-02-01 09:29:51 -06:00
upgrade_component_spec.ts fix(upgrade): populate upgraded component's view before creating the controller (#14289) 2017-03-07 09:32:52 -08:00