1
我是Angular的新手,面臨一個問題。我正在做的是我創建了一個app
組件,其模板中有div
包含checkbox
和label
,ts
該組件的文件具有字符串和布爾變量的數組。在一個div
上使用ngFor
指令並遍歷數組的字符串並在標籤內打印元素值。此外,每個div
都有一個ngClass
指令,該指令具有布爾變量的表達式,並在變量爲true時應用css
類。當我們檢查該複選框並且它改變了該div的背景顏色時,布爾變量纔是真實的。但爲什麼不改變被檢查的特定div的背景顏色,它改變了所有divs
的顏色。我只想改變只有選中的div
的顏色。Angular複選框不會改變div的顏色
代碼:src/app.ts
@Component({
selector: 'my-app',
template: `
<div class="myDiv" *ngFor = "let elm of my_Arr" [ngClass]={changeClass:state}>
<input type="checkbox" id="checkdemo" (change)="state=!state">
<label for="checkdemo">{{elm}}</label>
</div>
`,
styles: [`
.myDiv {
background-color : white;
border:1px solid black;
}
.changeClass {
background-color : red;
}
`]
})
export class App {
private state = false;
private my_Arr: string[] = ['string 1', 'string 2'];
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
見Demo
我創建了一個plunker [plunkr(https://plnkr.co/edit/0cjerYbjEMhUIia2UPlS?p=preview)它可以幫助你 – harish