所以我在ngFor循環中創建了幾個div。如果我點擊其中一個div,我想添加一個類到只有被點擊的div。如何觸發具有多個重複的div的唯一事件? (Angular 2)
目前我只是在[ngClass]上使用布爾標誌來呈現測試用例,但我不知道如何修改這樣的東西,以便每個生成的div都可以有唯一的標誌。
這是一個演示,
https://plnkr.co/edit/tCWTi7SJdvs2UXpQMYpe?p=preview
我掙扎拿出一個解決方案,這一點,我想避免與目標的elementRef DOM,但我不知道這是否是可能的嗎?
(我從來沒有實際使用此功能,因爲角文檔旗安全風險,所以如果我要使用這個它如何可以做任何建議,將不勝感激!)
代碼如下 - 希望我已經解釋得很好,讓我知道你是否需要更多信息。
TS
@Component({
selector: 'my-app',
template: `
<div class="testCase"
*ngFor="let data of data"
(click)="onSelect()"
[ngClass]="{'selected': selected}">
</div>
`,
})
export class App {
selected: boolean = false;
data:[];
onSelect(){
this.selected = !this.selected
}
constructor() {
this.data = ['test1', 'test2']
}
}
CSS
.testCase {
float: left;
height: 50px;
width: 50px;
opacity: 0.4;
}
.testCase:first-child {
background-color: rebeccapurple;
}
.testCase:last-child {
background-color: steelblue;
}
.testCase:hover {
opacity: 1;
}
.selected {
opacity: 1;
}
謝謝!我想它可以用ngIf以相同的方式使用? – since095
您不能將* ngIf和* ngFor放在同一個元素上。但是,是的,子元素可以有一個* ngIf語句:) – PierreDuc