diff --git a/packages/compiler-cli/test/compliance/r3_compiler_compliance_spec.ts b/packages/compiler-cli/test/compliance/r3_compiler_compliance_spec.ts index 6afa8627c8..998a42e2b1 100644 --- a/packages/compiler-cli/test/compliance/r3_compiler_compliance_spec.ts +++ b/packages/compiler-cli/test/compliance/r3_compiler_compliance_spec.ts @@ -1714,7 +1714,7 @@ describe('compiler compliance', () => { \` }) export class ContentQueryComponent { - @ContentChild(SomeDirective) someDir: SomeDirective; + @ContentChild(SomeDirective, {static: false}) someDir: SomeDirective; @ContentChildren(SomeDirective) someDirList !: QueryList; } @@ -1786,7 +1786,7 @@ describe('compiler compliance', () => { \` }) export class ContentQueryComponent { - @ContentChild('myRef') myRef: any; + @ContentChild('myRef', {static: false}) myRef: any; @ContentChildren('myRef1, myRef2, myRef3') myRefs: QueryList; } @NgModule({declarations: [ContentQueryComponent]}) @@ -1911,9 +1911,9 @@ describe('compiler compliance', () => { \` }) export class ContentQueryComponent { - @ContentChild('myRef', {read: TemplateRef}) myRef: TemplateRef; + @ContentChild('myRef', {read: TemplateRef, static: false}) myRef: TemplateRef; @ContentChildren('myRef1, myRef2, myRef3', {read: ElementRef}) myRefs: QueryList; - @ContentChild(SomeDirective, {read: ElementRef}) someDir: ElementRef; + @ContentChild(SomeDirective, {read: ElementRef, static: false}) someDir: ElementRef; @ContentChildren(SomeDirective, {read: TemplateRef}) someDirs: QueryList; } @NgModule({declarations: [ContentQueryComponent]}) @@ -1966,7 +1966,7 @@ describe('compiler compliance', () => { \` }) export class ContentQueryComponent { - @Input() @ContentChild('foo') foo: any; + @Input() @ContentChild('foo', {static: false}) foo: any; } @Component({ @@ -3139,7 +3139,7 @@ describe('compiler compliance', () => { 'spec.ts': ` import {Component, NgModule, ContentChild} from '@angular/core'; export class BaseClass { - @ContentChild('something') something: any; + @ContentChild('something', {static: false}) something: any; } @Component({ diff --git a/packages/compiler-cli/test/ngtsc/ngtsc_spec.ts b/packages/compiler-cli/test/ngtsc/ngtsc_spec.ts index 5c818815df..1bbcc200f6 100644 --- a/packages/compiler-cli/test/ngtsc/ngtsc_spec.ts +++ b/packages/compiler-cli/test/ngtsc/ngtsc_spec.ts @@ -1536,10 +1536,10 @@ describe('ngtsc behavioral tests', () => { } }) class FooCmp { - @ContentChild('bar', {read: TemplateRef}) child: any; + @ContentChild('bar', {read: TemplateRef, static: false}) child: any; @ContentChildren(TemplateRef) children: any; get aview(): any { return null; } - @ViewChild('accessor') set aview(value: any) {} + @ViewChild('accessor', {static: false}) set aview(value: any) {} } `); @@ -1568,7 +1568,7 @@ describe('ngtsc behavioral tests', () => { } }) class FooCmp { - @ContentChild('bar', {read: TemplateRef}) child: any; + @ContentChild('bar', {read: TemplateRef, static: false}) child: any; @ContentChildren(TemplateRef) children: any; get aview(): any { return null; } @ViewChild('accessor') set aview(value: any) {} @@ -1600,11 +1600,11 @@ describe('ngtsc behavioral tests', () => { template: '
', }) class FooCmp { - @ContentChild(forwardRef(() => TemplateRef)) child: any; + @ContentChild(forwardRef(() => TemplateRef), {static: false}) child: any; - @ContentChild(forwardRef(function() { return ViewContainerRef; })) child2: any; + @ContentChild(forwardRef(function() { return ViewContainerRef; }), {static: false}) child2: any; - @ContentChild((forwardRef((function() { return 'parens'; }) as any))) childInParens: any; + @ContentChild((forwardRef((function() { return 'parens'; }) as any)), {static: false}) childInParens: any; } `); diff --git a/packages/compiler/test/core_spec.ts b/packages/compiler/test/core_spec.ts index f5864584cc..c4acff371b 100644 --- a/packages/compiler/test/core_spec.ts +++ b/packages/compiler/test/core_spec.ts @@ -27,10 +27,11 @@ import * as core from '@angular/core'; typeExtends(); typeExtends(); compareRuntimeShape( - new core.ContentChild('someSelector'), compilerCore.createContentChild('someSelector')); + new core.ContentChild('someSelector', {static: false}), + compilerCore.createContentChild('someSelector', {static: false})); compareRuntimeShape( - new core.ContentChild('someSelector', {read: 'someRead'}), - compilerCore.createContentChild('someSelector', {read: 'someRead'})); + new core.ContentChild('someSelector', {read: 'someRead', static: false}), + compilerCore.createContentChild('someSelector', {read: 'someRead', static: false})); compareRuntimeShape( new core.ContentChildren('someSelector'), compilerCore.createContentChildren('someSelector')); @@ -39,10 +40,11 @@ import * as core from '@angular/core'; compilerCore.createContentChildren( 'someSelector', {read: 'someRead', descendants: false})); compareRuntimeShape( - new core.ViewChild('someSelector'), compilerCore.createViewChild('someSelector')); + new core.ViewChild('someSelector', {static: false}), + compilerCore.createViewChild('someSelector', {static: false})); compareRuntimeShape( - new core.ViewChild('someSelector', {read: 'someRead'}), - compilerCore.createViewChild('someSelector', {read: 'someRead'})); + new core.ViewChild('someSelector', {read: 'someRead', static: false}), + compilerCore.createViewChild('someSelector', {read: 'someRead', static: false})); compareRuntimeShape( new core.ViewChildren('someSelector'), compilerCore.createViewChildren('someSelector')); compareRuntimeShape( diff --git a/packages/compiler/test/directive_resolver_spec.ts b/packages/compiler/test/directive_resolver_spec.ts index 4d211643f9..e0ad64bb9f 100644 --- a/packages/compiler/test/directive_resolver_spec.ts +++ b/packages/compiler/test/directive_resolver_spec.ts @@ -68,15 +68,15 @@ class SomeDirectiveWithViewChildren { c: any; } -@Directive({selector: 'someDirective', queries: {'c': new ContentChild('c')}}) +@Directive({selector: 'someDirective', queries: {'c': new ContentChild('c', {static: false})}}) class SomeDirectiveWithContentChild { - @ContentChild('a') a: any; + @ContentChild('a', {static: false}) a: any; c: any; } -@Directive({selector: 'someDirective', queries: {'c': new ViewChild('c')}}) +@Directive({selector: 'someDirective', queries: {'c': new ViewChild('c', {static: false})}}) class SomeDirectiveWithViewChild { - @ViewChild('a') a: any; + @ViewChild('a', {static: false}) a: any; c: any; } @@ -408,37 +408,41 @@ class SomeDirectiveWithoutMetadata {} it('should append ContentChild', () => { const directiveMetadata = resolver.resolve(SomeDirectiveWithContentChild); - expect(directiveMetadata.queries) - .toEqual({'c': new ContentChild('c'), 'a': new ContentChild('a')}); + expect(directiveMetadata.queries).toEqual({ + 'c': new ContentChild('c', {static: false}), + 'a': new ContentChild('a', {static: false}) + }); }); it('should append ViewChild', () => { const directiveMetadata = resolver.resolve(SomeDirectiveWithViewChild); - expect(directiveMetadata.queries) - .toEqual({'c': new ViewChild('c'), 'a': new ViewChild('a')}); + expect(directiveMetadata.queries).toEqual({ + 'c': new ViewChild('c', {static: false}), + 'a': new ViewChild('a', {static: false}) + }); }); it('should support inheriting queries', () => { @Directive({selector: 'p'}) class Parent { - @ContentChild('p1') + @ContentChild('p1', {static: false}) p1: any; - @ContentChild('p21') + @ContentChild('p21', {static: false}) p2: any; } class Child extends Parent { - @ContentChild('p22') + @ContentChild('p22', {static: false}) p2: any; - @ContentChild('p3') + @ContentChild('p3', {static: false}) p3: any; } const directiveMetadata = resolver.resolve(Child); expect(directiveMetadata.queries).toEqual({ - 'p1': new ContentChild('p1'), - 'p2': new ContentChild('p22'), - 'p3': new ContentChild('p3') + 'p1': new ContentChild('p1', {static: false}), + 'p2': new ContentChild('p22', {static: false}), + 'p3': new ContentChild('p3', {static: false}) }); }); }); diff --git a/packages/core/test/render3/ivy/jit_spec.ts b/packages/core/test/render3/ivy/jit_spec.ts index 6fb5771030..cb976aec2a 100644 --- a/packages/core/test/render3/ivy/jit_spec.ts +++ b/packages/core/test/render3/ivy/jit_spec.ts @@ -295,7 +295,7 @@ ivyEnabled && describe('render3 jit', () => { it('should compile ContentChild query with string predicate on a directive', () => { @Directive({selector: '[test]'}) class TestDirective { - @ContentChild('foo') foo: ElementRef|undefined; + @ContentChild('foo', {static: false}) foo: ElementRef|undefined; } expect((TestDirective as any).ngDirectiveDef.contentQueries).not.toBeNull(); @@ -317,7 +317,7 @@ ivyEnabled && describe('render3 jit', () => { @Directive({selector: '[test]'}) class TestDirective { - @ContentChild(SomeDir) dir: SomeDir|undefined; + @ContentChild(SomeDir, {static: false}) dir: SomeDir|undefined; } expect((TestDirective as any).ngDirectiveDef.contentQueries).not.toBeNull(); @@ -326,7 +326,7 @@ ivyEnabled && describe('render3 jit', () => { it('should compile ViewChild query on a component', () => { @Component({selector: 'test', template: ''}) class TestComponent { - @ViewChild('foo') foo: ElementRef|undefined; + @ViewChild('foo', {static: false}) foo: ElementRef|undefined; } expect((TestComponent as any).ngComponentDef.foo).not.toBeNull(); diff --git a/packages/examples/common/ngIf/ts/module.ts b/packages/examples/common/ngIf/ts/module.ts index 229ae2e666..913b6e3dc3 100644 --- a/packages/examples/common/ngIf/ts/module.ts +++ b/packages/examples/common/ngIf/ts/module.ts @@ -62,7 +62,7 @@ export class NgIfThenElse implements OnInit { @ViewChild('primaryBlock', {static: true}) primaryBlock: TemplateRef|null = null; - @ViewChild('secondaryBlock') + @ViewChild('secondaryBlock', {static: true}) secondaryBlock: TemplateRef|null = null; switchPrimary() { diff --git a/packages/examples/core/di/ts/contentChild/content_child_example.ts b/packages/examples/core/di/ts/contentChild/content_child_example.ts index a734781912..28928cc4ad 100644 --- a/packages/examples/core/di/ts/contentChild/content_child_example.ts +++ b/packages/examples/core/di/ts/contentChild/content_child_example.ts @@ -23,7 +23,7 @@ export class Pane { }) export class Tab { // TODO(issue/24571): remove '!'. - @ContentChild(Pane) pane !: Pane; + @ContentChild(Pane, {static: false}) pane !: Pane; } @Component({ diff --git a/packages/examples/core/di/ts/contentChild/content_child_howto.ts b/packages/examples/core/di/ts/contentChild/content_child_howto.ts index 5bcaa1afda..455979bfd0 100644 --- a/packages/examples/core/di/ts/contentChild/content_child_howto.ts +++ b/packages/examples/core/di/ts/contentChild/content_child_howto.ts @@ -15,10 +15,10 @@ class ChildDirective { @Directive({selector: 'someDir'}) class SomeDir implements AfterContentInit { - @ContentChild(ChildDirective) contentChild !: ChildDirective; + @ContentChild(ChildDirective, {static: false}) contentChild !: ChildDirective; ngAfterContentInit() { // contentChild is set } } -// #enddocregion \ No newline at end of file +// #enddocregion diff --git a/packages/examples/core/di/ts/viewChild/view_child_example.ts b/packages/examples/core/di/ts/viewChild/view_child_example.ts index 4f7ccd15b1..c624cf87e3 100644 --- a/packages/examples/core/di/ts/viewChild/view_child_example.ts +++ b/packages/examples/core/di/ts/viewChild/view_child_example.ts @@ -27,7 +27,7 @@ export class Pane { `, }) export class ViewChildComp { - @ViewChild(Pane) + @ViewChild(Pane, {static: false}) set pane(v: Pane) { setTimeout(() => { this.selectedPane = v.id; }, 0); } diff --git a/packages/examples/core/di/ts/viewChild/view_child_howto.ts b/packages/examples/core/di/ts/viewChild/view_child_howto.ts index a0753ddbbb..f3d74ac953 100644 --- a/packages/examples/core/di/ts/viewChild/view_child_howto.ts +++ b/packages/examples/core/di/ts/viewChild/view_child_howto.ts @@ -16,10 +16,10 @@ class ChildDirective { @Component({selector: 'someCmp', templateUrl: 'someCmp.html'}) class SomeCmp implements AfterViewInit { // TODO(issue/24571): remove '!'. - @ViewChild(ChildDirective) child !: ChildDirective; + @ViewChild(ChildDirective, {static: false}) child !: ChildDirective; ngAfterViewInit() { // child is set } } -// #enddocregion \ No newline at end of file +// #enddocregion