ng-reflect-model 显示正确的值但未反映在输入中

2024-03-30

遇到一个非常奇怪的问题,我的应用程序在非常特定的用户案例中行为不当。我有一个门户,用户可以在其中添加问题和答案,然后进行编辑。在这种情况下,当我删除一个集合(q+a)然后尝试添加它时,模型正在更新,但我的视图从占位符中获取值并自行更新。这里我只是将值拼接并推送到数组中并使用 ngFor 进行渲染。最后一个元素是一个虚拟元素,用于输入向上推的值。

如果有任何意义,请附上屏幕截图。

您可以看到,对于文本框,ng-reflect-model 显示了正确的问题,但元素本身显示占位符文本。


显然这个问题是因为 Angular 无法正确跟踪我的数组的元素而引起的。我很难发现这一点。因此,只需向我的 ngFor 添加一个 trackBy 属性,我就能解决这个问题。

将其添加到我的组件中:

customTrackBy(index: number, obj: any): any {
  return index;
}

然后在模板中:

<div class="margin-bottom-15"
     *ngFor="let assessment of language.assessments; trackBy:customTrackBy">

所以基本上我要求 Angular 按索引跟踪数组中的元素。它解决了这个问题。

这里的评估是每个问答集的模型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ng-reflect-model 显示正确的值但未反映在输入中 的相关文章

随机推荐