我有一个父组件,在parent.component.html中包含以下代码:
<app-child [idElement]=(idElement)></app-child>
在子组件中,我有这样的输入参数:
@Input() idElement : number;
还有一个叫做的函数
getSpecs()
我希望当父输入修改输入时,子项执行getSpecs()
函数。那可能吗?
为此,您必须使用Angular生命周期钩ngOnChanges
。
在你的情况下,它将是这样的:
ngOnChanges(changes: SimpleChanges) {
if (changes['idElement']) {
// Do your logic here
this.getSpecs()
}
}
文档是here。
没有OnChanges
还有另一种选择。
@Component({
selector: 'app-child',
template: '<div></div>'
})
export class AppChildComponent {
private _idElement: number;
get idElement(): number {
return this._idElement;
}
@Input('idElement') set idElement(value: number) {
if (value) {
this._idElement = value;
this.getSpecs();
}
}
}
希望这可以帮助! :)
你可以尝试这些
OnChanges
中的角度核心包导入child component
import { Component, Input, OnChanges , SimpleChanges} from '@angular/core';
export class YourComponent implements OnChanges
OnChanges
方法
ngOnChanges(changes:SimpleChanges){
console.log(changes.your input property name);
// implement your logic here
}
每当您在父组件中进行更改时,它都会影响子组件