fix(upgrade): correctly handle downgraded OnPush components (#22209)

Fixes #14286

PR Close #22209
This commit is contained in:
Shannon Dunn
2018-02-13 17:13:47 -05:00
committed by Alex Rickabaugh
parent 7a1c43733b
commit ad9ce5cb41
2 changed files with 50 additions and 1 deletions

View File

@ -25,6 +25,7 @@ export class DowngradeComponentAdapter {
private componentRef: ComponentRef<any>;
private component: any;
private changeDetector: ChangeDetectorRef;
private viewChangeDetector: ChangeDetectorRef;
constructor(
private element: angular.IAugmentedJQuery, private attrs: angular.IAttributes,
@ -60,6 +61,7 @@ export class DowngradeComponentAdapter {
this.componentRef =
this.componentFactory.create(childInjector, projectableNodes, this.element[0]);
this.viewChangeDetector = this.componentRef.injector.get(ChangeDetectorRef);
this.changeDetector = this.componentRef.changeDetectorRef;
this.component = this.componentRef.instance;
@ -139,6 +141,8 @@ export class DowngradeComponentAdapter {
(<OnChanges>this.component).ngOnChanges(inputChanges !);
}
this.viewChangeDetector.markForCheck();
// If opted out of propagating digests, invoke change detection when inputs change.
if (!propagateDigest) {
detectChanges();