[英]Underline most recent clicked element
我正在尝试找到一种方法来跟踪最近单击的项目并仅在该项目下划线。 这是我目前的方法,但是,它强调了我点击的每个项目,但不是最近的项目。 我还尝试在li
上使用:active
、 :focus
和:focus:active
,但下划线没有保留。
在我的 HTML 中:
<li [ngClass]="{ 'target': isTarget }" (click)="updateTarget(t)">
{{ details }} </li>
在我的 CSS 中:
li {
&.target {text-decoration: underline; }
}
在我的角度 2 中:
updateTarget(t) {
this.isTarget = t;
}
我假设你的目标是一个 json 对象数组。 以下是您的操作方法:
<li [ngClass]="{ 'target': isTarget === t }" (click)="isTarget = t">
{{details }}
</li>
和你的风格:
.target {
text-decoration: underline;
}
此Plunker 演示中包含示例的完整代码
在您的组件中,有一个数组,其中的每个成员将对应于视图中的一个<li>
。
public target = null; // reference to the most recently clicked link
public links = [
{details: '...'},
{details: '...'},
];
然后在您的视图中,使用*ngFor
遍历links
:
<li *ngFor="let link of links" [ngClass]="{'target': link===target }"
(click)="target = link">
{{link.details}}
</li>
当用户点击一个链接时,Angular 会将底层对象设置为当前目标,并且ngClass
指令将添加“ target ”类,因为link===target
仅对点击的链接为真。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.