【发布时间】:2019-10-31 01:39:08
【问题描述】:
我是 Angular 的新手,只是一个关于生命周期挂钩方法的问题。我知道:
ngOnInit() 在 Angular 为所有输入设置初始值后调用
指令声明的属性。
ngOnChanges() 在输入属性的值发生更改时调用,并且在调用 ngOnInit 方法之前调用。
假设我们有一个像这样的输入属性:
// custom directive class
@Input("pa-attr")
numOfProduct: number;
和
//template.html
<tr [pa-attr]="getProducts().length ...
然后我点击添加按钮并添加了一个新产品,所以产品总数发生了变化,所以我的问题是:
在我的情况下,ngOnChanges() 被调用,ngOnInit() 不会被调用,因为 ngOnInit() 仅在第一次使用值初始化输入属性时被调用。
但是在调用ngOnChanges() 之后,输入属性numOfProduct 是如何更新的呢?是不是一个特殊的生命周期方法称为ngUpdateInputProperties(名称不匹配,但你明白了)的作用是:
ngUpdateInputProperties {
latestValue = ... //retrieve latest value
numOfProduct = latestValue ;
}
或者这样的生命周期方法不存在并且numOfProduct没有最新值,我们只能在ngOnChanges()方法中获取最新值?
【问题讨论】:
标签: javascript angular