javascript - Avmarkera alltid kryssrutan
Jag använder en kryssruta och jag hoppas att den aldrig blir markerad.
Jag använde en funktion för detta, men den fungerar inte, om du kryssar i kryssrutan några gånger blir den aktiv (markerad).
Hur kan jag alltid hålla det okryssat?
DEMO
.TS
check: boolean = false;
change(e){
this.check = false
}
.HTML
<ul class="mdc-image-list my-image-list" style="margin-top:120px;padding-left: 10px;padding-right: 10px;">
<ng-container *ngFor="let product of data; let j = index;">
<li class="mdc-image-list__item">
<div class="mdc-image-list__image-aspect-container">
<img [src]="product.image" class="mdc-image-list__image">
</div>
<div class="mdc-image-list--with-text-protection">
<div class="mdc-image-list__supporting mdc-image-list__supporting">
<span class="mdc-image-list__label">{{product.name}}</span>
</div>
<div class="Info">
<dx-check-box (onValueChanged)="change($event);" [(value)]="check"></dx-check-box>
</div>
</div>
</li>
</ng-container>
</ul>
Problem
Svar #1
Du kan använda [ngModel]-bindning för att visa check-värdet och (ngModelChange)-händelsehantering för att bearbeta ändringen:
<dx-check-box [ngModel]="check" (ngModelChange)="change($event)"></dx-check-box>
I händelsehanteraren:
- Ställ in det nya
check-värdet - Tvinga ändringsavkänning genom att anropa
ChangeDetectorRef.detectChanges - Sätt tillbaka värdet
checktillfalse
change(value) {
this.check = value;
this.changeDetectorRef.detectChanges();
this.check = false;
...
}
Se denna stackblitz för en demo.
Svar #2
Jag har försökt enkelt
<dx-check-box [value]="false"></dx-check-box>
Men för mig fungerade det inte.
Verkar vara en bugg eller något.
Tillfälliga lösningar är:
<dx-check-box [value]="false" [disable]="true"></dx-check-box>- fungerar, och ser lite annorlunda ut, men du kan ställa in några stilar icssför att få det att se ut som om det inte är inaktiveratmåla transparent
divöver kryssrutan, det förhindrar attinputklickas
