Angular 学习笔记 (久久没有写 angular 常会忘记的小细节)

由于经常跑去写后端, 而且一些就几个月...很多 ng 的东西就忘掉了. 

写在这里方便复习呗.

1. async pipe 没有 resolve 前返回的值是 null 

2 view component 没有写 [input] 的话, ng 是不会给 input 属性赋值的所以属性根本不会被创建 (oninit 时 object.keys(this) 可以看出来) , 我们可以通过在 constructor 写一个 default value, 这样在 onInit 时就可以拿到 default value 了

  但留意, 如果 view component 写上 [input]="undefined" 那样我们的 default value 就被覆盖掉了哦. (经常会出现在 input 一个需要async 的 data 上)

3.即使一个 promise 已经 resolve 了,但你 .then 它, 任然是异步执行, 这次为了确保它始终是异步的概念. 

4. form value accessor 执行 ngOnInit-> writeValue-> registerOnChange -> registerOnTouched -> ngAfterContentInit 

5.nested [formGroup] 是无法拿到 root 的 submitted 的, material error 也没有处理这种情况... 所以要 nested form 最好使用唯一 [formGroup] 配上 formGroupName 或者 formGroup.get('nested path') 给所有 control.

6.router.event subscribe 在 constructor 和 oninit 监听是不同的, constructor 可以监听的到本次 event ActivationEnd 到 NavigationEnd 事件. oninit 才监听就完全监听不到本次事件了.

7. [src] 如果结尾是 extension 那么就不需要 sanitizer, 如果是 link to website site or web api path 那么就要 sanitizer.

原文地址:https://www.cnblogs.com/keatkeat/p/10146366.html