You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular2中[(ngModel)]拼接循环值绑定textarea失效求助

解决Angular模板中[(ngModel)]动态属性绑定问题

嘿,我一眼就看出问题所在了——你现在把'projectViewService.projData.explanation'+item.value当成字符串字面量传给[(ngModel)]了,所以它直接把这段文本显示出来,而不是去读取对应的属性值。

要解决这个问题,你需要用对象的方括号访问语法来动态获取属性,而不是字符串拼接的写法。具体修改如下:

<tbody *ngFor="let item of projParameters; let i = index">
  <!-- 保留你的其他代码 -->
  <textarea 
    placeholder="" 
    [(ngModel)]="projectViewService.projData['explanation' + item.value]" 
    [editable]="isFormEditable"
  ></textarea>
</tbody>

为什么这样能行?

  • 'explanation' + item.value会先计算出完整的属性名(比如当item.value是"test"时,得到explanationtest)
  • 然后通过projData[计算后的属性名]的方式,就能正确访问到projectViewService.projData下对应的属性,这样[(ngModel)]就能完成双向绑定了。

额外注意事项

  • 要确保projectViewService.projData确实存在对应的属性,比如如果item.value是"1",那projData里得有explanation1这个属性,否则绑定的值会是undefined
  • 如果projData是响应式对象(比如用RxJS的可观察对象包装),要确保属性变化能被Angular的变更检测机制捕捉到,不然视图可能不会同步更新
  • 确认projectViewService已经正确注入到你的组件中,并且是公共属性(public),这样模板才能访问到它

内容的提问来源于stack exchange,提问作者David R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:39:37