Angular *在递增索引的同时迭代相同参数的ngFor指令
我面临着一个角度的问题。基本上,我是在一个数组和索引中循环。 当我在特定条件下输入时,我希望在索引通常递增的情况下迭代相同的参数两次 HTMLAngular *在递增索引的同时迭代相同参数的ngFor指令,angular,Angular,我面临着一个角度的问题。基本上,我是在一个数组和索引中循环。 当我在特定条件下输入时,我希望在索引通常递增的情况下迭代相同的参数两次 HTML <div class="row"> <div class= "col-md-6" *ngFor="let p2 of params | orderBy: 'positionInGroup'; let i = index"> <div class="row" *ngIf="!p2.isHidden">
<div class="row">
<div class= "col-md-6" *ngFor="let p2 of params | orderBy: 'positionInGroup'; let i = index">
<div class="row" *ngIf="!p2.isHidden">
<!--display something -->
</div>
<div class="row" *ngIf="p2.isHidden">
<!--when is hidden I want to iterate the same p2 of this loop
while 'i' increments by 1 as usual-->
</div>
</div>
基本上,在这种情况下,我想迭代相同的参数p2两次。我该怎么做呢?ngFor只是一个循环构造,如果您想转换正在循环的数据,最好在开始在模板中循环之前进行转换。这可以通过添加这样的属性并在其上循环来实现:
get transformedParams() {
result = [];
for (param of this.params) {
result.push(param);
if (param.isHidden) {
result.push(param)
}
}
return result;
}
这样,对于
params
中的每个唯一项,索引将正常递增,但由于params
中的每个项都被添加到transformedParams
两次,因此您将对同一对象进行两次迭代。这应该允许您在模板中不需要复杂的逻辑就可以做您想做的事情。ngFor只是一种循环构造,如果您想转换正在循环的数据,最好在开始在模板中循环之前进行转换。这可以通过添加这样的属性并在其上循环来实现:
get transformedParams() {
result = [];
for (param of this.params) {
result.push(param);
if (param.isHidden) {
result.push(param)
}
}
return result;
}
这样,对于
params
中的每个唯一项,索引将正常递增,但由于params
中的每个项都被添加到transformedParams
两次,因此您将对同一对象进行两次迭代。这应该允许您在模板中不需要复杂的逻辑就可以做您想做的事情。类似params[index+1]的东西可以解决您的问题吗?如果无法解决,您可以指定更多细节吗?ngFor不是这样工作的。如果你想循环你的iterable的一个转换版本,在循环之前先转换它?我不明白。当您找到一个隐藏的时,是否要重复p2
?否!基本上,例如,当我在index=1处迭代参数时,我面对p2.ishiden,在下一个循环中,我不想迭代下一个p2,但在index=2@leonardogutulioyes@reactularsomething类似于参数[index+1]的情况下,迭代这个循环的同一个p2。解决问题了吗?如果无法解决,您可以指定更多细节吗?ngFor不是这样工作的。如果你想循环你的iterable的一个转换版本,在循环之前先转换它?我不明白。当您找到一个隐藏的时,是否要重复p2
?否!基本上,例如,当我在index=1处迭代参数时,我面对p2.ishiden,在下一个循环中,我不想迭代下一个p2,而是在index=2@leonardogutulioyes@reactular时迭代这个循环的同一个p2