fix(ivy): support static ViewChild queries (#28811)
This commit adds support for the `static: true` flag in `ViewChild` queries. Prior to this commit, all `ViewChild` queries were resolved after change detection ran. This is a problem for backwards compatibility because View Engine also supported "static" queries which would resolve before change detection. Now if users add a `static: true` option, the query will be resolved in creation mode (before change detection runs). For example: ```ts @ViewChild(TemplateRef, {static: true}) template !: TemplateRef; ``` This feature will come in handy for components that need to create components dynamically. PR Close #28811
This commit is contained in:

committed by
Igor Minar

parent
ae16378ee7
commit
a4638d5a81
@ -229,6 +229,21 @@ export interface R3QueryMetadata {
|
||||
* for a given node is to be returned.
|
||||
*/
|
||||
read: o.Expression|null;
|
||||
|
||||
/**
|
||||
* Whether or not this query should collect only static results.
|
||||
*
|
||||
* If static is true, the query's results will be set on the component after nodes are created,
|
||||
* but before change detection runs. This means that any results that relied upon change detection
|
||||
* to run (e.g. results inside *ngIf or *ngFor views) will not be collected. Query results are
|
||||
* available in the ngOnInit hook.
|
||||
*
|
||||
* If static is false, the query's results will be set on the component after change detection
|
||||
* runs. This means that the query results can contain nodes inside *ngIf or *ngFor views, but
|
||||
* the results will not be available in the ngOnInit hook (only in the ngAfterContentInit for
|
||||
* content hooks and ngAfterViewInit for view hooks).
|
||||
*/
|
||||
static: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user