angular-docs-cn/packages/upgrade/test
Georgios Kalpakas b3e63c09ab fix(upgrade): initialize all inputs in time for `ngOnChanges()`
Previously, non-bracketed inputs (e.g. `xyz="foo"`) on downgraded components
were initialized using `attrs.$observe()` (which uses `$evalAsync()` under the
hood), while bracketed inputs (e.g. `[xyz]="'foo'"`) were initialized using
`$watch()`. If the downgraded component was created during a `$digest` (e.g. by
an `ng-if` watcher), the non-bracketed inputs were not initialized in time for
the initial call to `ngOnChanges()` and `ngOnInit()`.

This commit fixes it by using `$watch()` to initialize all inputs. `$observe()`
is still used for subsequent updates on non-bracketed inputs, because it is more
performant.

Fixes #16212
2017-05-03 19:32:57 -07:00
..
common fix(core): Update types for TypeScript nullability support (#15472) 2017-03-29 09:34:45 -07:00
dynamic fix(upgrade): initialize all inputs in time for `ngOnChanges()` 2017-05-03 19:32:57 -07:00
static fix(upgrade): initialize all inputs in time for `ngOnChanges()` 2017-05-03 19:32:57 -07:00