fix(ivy): NgOnChangesFeature no longer included in hello_world (#28187)

- Wraps the NgOnChangesFeature in a factory such that no side effects occur in the module root
- Adds comments to ngInherit property on feature definition interface to help guide others not to make the same mistake
- Updates compiler to generate the feature properly after the change to it being a factory
- Updates appropriate tests

PR Close #28187
This commit is contained in:
Ben Lesh
2019-01-22 11:17:13 -08:00
committed by Alex Rickabaugh
parent a95e81978b
commit 5430d2bc66
13 changed files with 41 additions and 89 deletions

View File

@ -40,7 +40,7 @@ NgForOf.ngDirectiveDef = defineDirective({
type: NgTemplateOutletDef,
selectors: [['', 'ngTemplateOutlet', '']],
factory: () => new NgTemplateOutletDef(directiveInject(ViewContainerRef as any)),
features: [NgOnChangesFeature],
features: [NgOnChangesFeature()],
inputs:
{ngTemplateOutlet: 'ngTemplateOutlet', ngTemplateOutletContext: 'ngTemplateOutletContext'}
});

View File

@ -357,7 +357,7 @@ describe('host bindings', () => {
template: (rf: RenderFlags, ctx: InitHookComp) => {},
consts: 0,
vars: 0,
features: [NgOnChangesFeature],
features: [NgOnChangesFeature()],
hostBindings: (rf: RenderFlags, ctx: InitHookComp, elIndex: number) => {
if (rf & RenderFlags.Create) {
allocHostVars(1);

View File

@ -501,7 +501,7 @@ describe('InheritDefinitionFeature', () => {
type: SuperDirective,
selectors: [['', 'superDir', '']],
factory: () => new SuperDirective(),
features: [NgOnChangesFeature],
features: [NgOnChangesFeature()],
inputs: {someInput: 'someInput'}
});
}

View File

@ -2008,7 +2008,7 @@ describe('lifecycles', () => {
vars: vars,
inputs: {a: 'val1', b: ['publicVal2', 'val2']}, template,
directives: directives,
features: [NgOnChangesFeature],
features: [NgOnChangesFeature()],
});
};
}
@ -2027,7 +2027,7 @@ describe('lifecycles', () => {
selectors: [['', 'dir', '']],
factory: () => new Directive(),
inputs: {a: 'val1', b: ['publicVal2', 'val2']},
features: [NgOnChangesFeature],
features: [NgOnChangesFeature()],
});
}
@ -2732,7 +2732,7 @@ describe('lifecycles', () => {
vars: vars,
inputs: {val: 'val'}, template,
directives: directives,
features: [NgOnChangesFeature],
features: [NgOnChangesFeature()],
});
};
}

View File

@ -1631,7 +1631,7 @@ describe('ViewContainerRef', () => {
textBinding(0, interpolation1('', cmp.name, ''));
}
},
features: [NgOnChangesFeature],
features: [NgOnChangesFeature()],
inputs: {name: 'name'}
});
}
@ -1678,7 +1678,7 @@ describe('ViewContainerRef', () => {
}
},
directives: [ComponentWithHooks, DirectiveWithVCRef],
features: [NgOnChangesFeature],
features: [NgOnChangesFeature()],
});
}
@ -1771,7 +1771,7 @@ describe('ViewContainerRef', () => {
}
},
directives: [ComponentWithHooks, DirectiveWithVCRef],
features: [NgOnChangesFeature],
features: [NgOnChangesFeature()],
});
}