【发布时间】:2020-03-04 20:40:43
【问题描述】:
Angular 官方文档说:
"ngOnChanges 是一个生命周期钩子,当指令的任何数据绑定属性发生更改时调用它。定义一个 ngOnChanges() 方法来处理更改。
有点不清楚是否意味着更新/最新的输入属性实际上在 ngOnChanges 生命周期方法中可用。于是我做了一个简单的实验:
//trmplate.html
<p [mydirective] = "GetFirstStudent().Name"></p>
其中 Name 是组件中的一个属性,我将第一个人的名字设置为“Michael”。
所以在指令类中,mydirective 选择器:
@Directive({
selector: "[mydirective]"
})
export class CustomDirective{
...
@Input("mydirective")
personName: string;
ngOnChanges() {
console.log(personName);
}
}
所以我刷新浏览器,控制台确实有以下输出:
迈克尔
所以这证实了在 ngOnChanges 中,我可以访问最新的输入属性。
我的理解正确吗?
【问题讨论】:
-
你问
ngOnChanges是否有效?如果是这样,答案是肯定的。 -
使用
ngOnChanges(changes : SimpleChanges)。changes.personName.currentValue将存储当前值 -
您的问题到底是什么?您通过证明最新值实际上是
Michael基本上回答了您问自己的问题,所以我不确定您在这里寻找什么。
标签: angular angular2-directives