Angular 在*ngFor中执行索引减法
如何使用索引进行计算?我想在条件为真时应用类危险,但我需要在*ngFor循环内计算I-1Angular 在*ngFor中执行索引减法,angular,Angular,如何使用索引进行计算?我想在条件为真时应用类危险,但我需要在*ngFor循环内计算I-1 <tr *ngFor="#org of data; #i = index"> <td [ngClass]="{danger: org.price < data.stock[i-1].val }"> </tr> 我很确定这不是由I-1不工作引起的。 索引以0开头。因此,我想问题在于data.stock[-1]是无效的,因为访问数组的索引-1是无效的。您可以在
<tr *ngFor="#org of data; #i = index">
<td [ngClass]="{danger: org.price < data.stock[i-1].val }">
</tr>
我很确定这不是由
I-1
不工作引起的。索引以
0
开头。因此,我想问题在于data.stock[-1]
是无效的,因为访问数组的索引-1
是无效的。您可以在自定义函数中进行任何需要的计算,例如:
@Component({
selector: 'my-app',
template: `<table>
<tr *ngFor="let org of data; let i = index">
<td [ngClass]="{danger: org.price < org.stock[getIndex(i)].val }">
...
})
export class AppComponent implements OnInits {
...
// this is your custom function to set index as you need
getIndex(index){
var result = index - 1;
if (result < 0 || result > 0) result = 0;
return result;
}
}
@组件({
选择器:“我的应用程序”,
模板:`
...
})
导出类AppComponent实现OnInits{
...
//这是自定义函数,用于根据需要设置索引
getIndex(索引){
var结果=指数-1;
如果(结果<0 | |结果>0)结果=0;
返回结果;
}
}
请看我的快速示例
注:
- 正如@Günter所指出的:负指数是无效的
- 您的
属性是一个对象数组还是一个对象?似乎它应该是一个对象数组,其中每个对象都有一个名为数据
的附加数组属性stock
中的*ngFor
组织已被弃用,您应该改用#
1
开头。