Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在ngFor中添加/删除Angular2中的类?_Javascript_Angular - Fatal编程技术网

Javascript 如何在ngFor中添加/删除Angular2中的类?

Javascript 如何在ngFor中添加/删除Angular2中的类?,javascript,angular,Javascript,Angular,当我单击ngForspan时,设法在ngForspan上添加class,但是如果我单击另一个span,我会尝试删除当前类 假设这些跨度来自ngFor,当我单击S时,它将添加一个类活动跨度,如果我单击M,它将添加一个类活动跨度,但将该类从S中删除 <span class="jersey-size" [ngClass]="{'active-span': size.active}" (click)="getSizeData(size)">{{ size.size }}</span&

当我单击
ngFor
span时,设法在
ngFor
span上添加
class
,但是如果我单击另一个span,我会尝试删除当前类

假设这些跨度来自
ngFor
,当我单击S时,它将添加一个类
活动跨度
,如果我单击M,它将添加一个类
活动跨度
,但将该类从S中删除

<span class="jersey-size" [ngClass]="{'active-span': size.active}" (click)="getSizeData(size)">{{  size.size }}</span>
或者使用
ngClass
,但这只是切换类

select(size){
 size.active = !size.active;
}
<span class="jersey-size" [ngClass]="{'active-span': size.active}" (click)="getSizeData(size)">{{  size.size }}</span>
选择(大小){
size.active=!size.active;
}
{{size.size}}

我的问题是,当我选择/单击一个新的span时,如何从以前选择的span中删除该类?

我认为您应该存储大小选择(或索引)(您需要将其存储在db no中?),然后像这样使用它:

[ngClass]="{'active-span': size.size === selectedSize}"
您的控制器可以是这样的(或者如果您已经有一个对象来存储它,则使用适当的对象):


您有多少种类型(名称)?2?应该不重要,因为它是使用
ngFor
动态渲染的,所以它可以是2或5。但在我的计算中,将有4种尺寸(S、M、L、XL)。您如何以这种方式存储您的选择?是的,现在排序:)我之前也做过类似的操作,但我在
中添加了falsey!大小。大小
[ngClass]="{'active-span': size.size === selectedSize}"
selectedSize: string;
select(size){
 this.selectedSize = size.size;
}