#angular #ngonchanges
Вопрос:
У меня есть компонент с именем ftn-popin-открывалка
<label>{{ selectedValue }}</label>
где SelectedValue-это вход()
@Input() selectedValue: string;
Внутри другого компонента, в котором я использую открыватель ftn-popin, я хотел бы обнаруживать каждый раз, когда изменяется значение Input() SelectedValue:
<ftn-popin-opener
[selectedValue]='professionalSituation | titlecase'>
</ftn-popin-opener>
Я пробовал использовать ngOnChanges (), но это не работает
ngOnChanges(changes: SimpleChanges): void {
console.log(changes.professionalSituation.currentValue);
}
Комментарии:
1. Вы хотите обнаружить изменения в
ftn-popin-opener
компоненте, верно? Не могли бы вы, пожалуйста, разместить код вашегоftn-popin-opener
компонента здесь?
Ответ №1:
Вы должны использовать метод жизненного цикла ngOnChanges в компоненте, где есть @Input, в вашем случае вы должны использовать его в компоненте popin-opener
Ответ №2:
Я не уверен, как professionalSituation
это обрабатывается в вашем родительском компоненте, но то, что вы могли бы сделать в своем ftn-popin-opener
компоненте @Input
, — это создать такой сеттер:
export class FtnPopinOpenerComponent {
myValue!: string;
@Input() set selectedValue(value: string) {
this.myValue = value;
}
}
В вашем HTML-шаблоне:
<label>{{ myValue }}</label>