角度响应式表单 - 如何将订阅值更改为表单数组中表单控件中的单个控件



在角度响应式表单中,我有表单控件"名称"和表单数组控件"技能",我可以添加valueChange订阅整个技能,但是有没有办法单独添加valueChange订阅"技能"中的"技能名称"。

this.exp = this.fb.group({
name: [null, Validators.required],
skills: this.fb.array([
{
skillname: 'java',
experience: 2
},
{
skillname: 'python',
experience: 2
}
]})})

例:

this.exp.skills.valueChanges.subscribe(skills=>
{ //sample code });

但是我需要听技能名称:

this.exp.skills[0].skillname.valueChanges.subscribe(name=>
{ //sample code });

像这样,有没有办法做到这一点?

您可以使用 get 和 at 函数。

this.exp.skills.at(yourindex).skillname.valueChanges.subscribe(name=>
{ //sample code });

this.exp.get('skills').at(yourIndex).get('skillname').valueChanges.subscribe(name=> {});
this.exp.get('skillName').valueChanges.subscribe(val=>{
console.log(val);
});

最新更新