【发布时间】:2021-03-06 19:48:31
【问题描述】:
我需要根据方法将一个类分配给 *ngFor 迭代内的 div。
下面是我的 HTML 代码:-
<ng-container *ngFor="let data of totalData let j = index">
<div>
<a (click)="selectData(data)">
<div [ngClass]="{selected : selectedCodeMethod(data)}">
{{data.code}}
</div>
</a>
</div>
</ng-container>
我的 Ts 代码:-
selectedCodeMethod(data){
if(this.selectedCode.includes(data.code)){
return true;
}
return false;
}
selectData(data){
this.selectedCode.push(data.code);
}
即使 selectedCodeMethod() 改变了 selectedCode 数组的内容,ngClass 内部的方法也不会反映变化。
我需要做哪些改变?
【问题讨论】:
-
[class.selected]=" selectedCodeMethod(data)" 有什么不同吗?
-
@manish sharma 不知道为什么它不适合你。这是一个具有相同设置的代码框(从 Tai 借来的)-codesandbox.io/s/bold-pond-c35rw 可以工作。
-
@Antoniossss 我正在执行与提问者相同的代码。也推送项目,但它仍然有效,这就是我删除答案的原因。
-
正确,已删除。
-
@Antoniossss 我尝试了 [class.selected] 并且它有效,但是正如 Tal Ohana 提到的不要在 Angular 模板中调用函数,我使用管道来解决我的问题。
标签: angular typescript