Gil*_*ain 3 viewchild angular angular8
Angular v8刚刚发布。尽管它大部分是向后兼容的,但还是有一些重大变化。
根据Angular的Changelog,一项核心更改是(我引用):
还指出,在大多数情况下,只需设置即可解决问题{ static: false }。
@ViewChild('selectorName', { static: false }) varName: any;
Run Code Online (Sandbox Code Playgroud)
我的问题是,何时应将此属性(静态)设置为true?以及如何影响我的申请???
使用{ static: true }时,您要访问的ViewChild在ngOnInit。
使用{ static: false }将仅访问ngAfterViewInit。当*ngIf模板上有结构指令(等)时,这也是您要追求的目标。
在大多数情况下{ static: false }都可以。
从文档中:
如何选择要使用的静态标志值:true 或 false?
在官方 API 文档中,我们始终建议在 ngAfterViewInit 中检索查询结果以进行视图查询,并在 ngAfterContentInit 中检索内容查询。这是因为当这些生命周期钩子运行时,相关节点的更改检测已经完成,我们可以保证我们已经收集了所有可能的查询结果。
出于同样的原因,大多数应用程序都希望使用 {static: false}。此设置将确保查询能够找到依赖于绑定解析的查询匹配(例如 *ngIfs 或 *ngFors 内的结果)。
在极少数情况下,可能需要 {static: true} 标志(请参阅此处的答案)。
https://angular.io/guide/static-query-migration
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |