遇到了一个非常奇怪的问题,我的应用程序在一个非常特定的用户案例中行为不当。我有一个门户,用户可以添加问题和答案,然后编辑它们。在这种情况下,当我删除一个集合(q+a)并尝试添加它时,模型会得到更新,但我的视图会从占位符中获取值并更新自身。在这里,我只是拼接和推送数组中的值,并使用ngfor进行渲染。最后一个元素是一个伪元素,用于输入向上推的值。
如果有任何意义的话,附上一张截图。
可以看到,对于文本框,ng reflect模型显示正确的问题,但是元素本身显示占位符文本。
最佳答案
很明显,这个问题是由于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按索引跟踪数组中的元素。它解决了这个问题。
这里的评估是每个问答集的模型。
关于angular - ng-reflect-model显示正确的值,但未反射(reflect)在输入中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40663198/