Angular响应式表单中<tr>内Pipe使用的语法错误排查
问题分析与修正方案
嘿,我来帮你排查这个问题~你的代码确实存在两处关键语法错误,导致它无法正常工作,我给你一步步拆解:
错误点1:*ngFor的索引声明语法错误
你在*ngFor里写了"let i = index",这里多套了一层不必要的双引号。Angular的*ngFor语法中,变量声明不需要额外引号包裹,正确的写法是在分号后直接写let i = index。
错误点2:paginate管道的位置完全错误
paginate管道的作用是对*ngFor要遍历的数组进行分页转换,你现在把它放在[formGroupName]属性绑定的后面,这完全不符合Angular的语法规则——管道只能用在表达式的末尾来转换值,这里你需要把它附加到要遍历的数组myForm.controls.rows.controls上。
修正后的代码
<tr *ngFor="let row of myForm.controls.rows.controls | paginate: { itemsPerPage: 3, currentPage: p }; let i = index" [formGroupName]="i" > <!-- 这里放你的表格单元格内容 --> </tr>
补充说明
修改后,paginate管道会先对rows.controls数组进行分页处理,*ngFor再遍历分页后的结果;同时[formGroupName]="i"正确绑定到当前项的索引,完全符合响应式表单的表单分组要求。
内容的提问来源于stack exchange,提问作者Joseph
相关产品推荐
相关产品推荐

