Angular 因在角度9中工作不正常而导致的故障

Angular 因在角度9中工作不正常而导致的故障,angular,ngfor,Angular,Ngfor,在Angular 9应用程序中使用嵌套的ngFor循环时遇到问题。下面代码(代码行12)中列出的最后一个ngFor似乎仅在顶行(代码行1)主ngFor的任意周期上随机工作 {{row.strategicProject.name} {{subww.name} (本地得分:{this.subproducts[pmId][subPmId].排名*100}}%) {{goal.goalRanking*100}}}% {{次级排名*目标排名*100}}% {{contributionSum[pmId].

在Angular 9应用程序中使用嵌套的ngFor循环时遇到问题。下面代码(代码行12)中列出的最后一个ngFor似乎仅在顶行(代码行1)主ngFor的任意周期上随机工作


{{row.strategicProject.name}
{{subww.name}
(本地得分:{this.subproducts[pmId][subPmId].排名*100}}%)
{{goal.goalRanking*100}}}%
{{次级排名*目标排名*100}}%
{{contributionSum[pmId].valueOf()*100}}
{{subPresTot.ranking*contributionSum[pmId].valueOf()*100}}%
我得到的结果如下。有时,嵌套的ngFor只在主ngFor的第一个周期工作(请参见“战略贡献”一栏)

有时,它只对第二个数据集起作用:

我无法理解的是,代码行8上完全相同的嵌套ngFor是如何完美地工作的,并在两个数据集上一致地显示结果。我尝试为两个ngFor使用不同的变量名,但没有得到不同的结果

例如,我还尝试使用一些模拟文本来查看
contributionSum[pmId].valueOf()
值是否为空,但我没有得到积极的结果,因为ngFor不会在任意随机数据集上重复自身/循环多次

控制台没有显示任何错误。
编辑:编辑代码并修复了答案中建议的一些语法,没有不同的结果

ngFor的sintax,请参阅

你可以得到索引,或者最后一个,或者第一个,或者…,例如

*ngFor="let variable of yourArray;index as i;"
存在一些类似的

  <!--what is this "as subPresId"?????-->
 *ngFor="let subPres of this.subPResults[pmId] as subPresId"

*ngFor=“将此.subpress[pmId]的子部分设为子部分”

这背后有代码吗?IE吸气剂在中间更新他们周围的数据?我不记得,不幸的是,张贴整个应用程序是很复杂的,我必须重构它来做一个工作示例。数据是从数据库加载的,但事实是,在其他列上,它已经存在,并且一直正确加载(我不明白为什么它在最后一列上的工作方式与在其他列上的工作方式不同)您是对的,现在已修复为:然而,结果仍然是一样的,第二个ngFor并不总是像预期的那样循环。有什么建议吗?我还应该去哪里查?谢谢我唯一能看到的是您的
contributionSum[pmId].valueOf()
,尝试-转换成一个数字-:
subpristot.ranking*(+contributionSum[pmId])*100-并检查控制台中是否有错误-。您可以尝试在td或{subPrResults | json}中写入
{{{pmId}}},仅用于检查。注意:在.html中不需要写“this”。谢谢,我也尝试过写{{pmId}},但奇怪的是,我还是无缘无故地只得到了一些迭代。我想我已经找到了一个解决办法,但我想知道为什么它会起作用。我使用了:
{{this.subproducts[pmId][subPmId].ranking*contributionSum[pmId].valueOf()*100
,由于某种原因,这种方式效果很好(因此基本上我使用的是相同的信息,但我使用的是索引进行迭代……我觉得很奇怪)
*ngFor="let variable of yourArray;index as i;"
  <!--what is this "as subPresId"?????-->
 *ngFor="let subPres of this.subPResults[pmId] as subPresId"