2

我正在使用一个复选框,我希望它永远不会被选中。

我为此使用了一个功能,但它不起作用,如果您选中该复选框几次它是活动的(选中)。

我怎样才能让它始终处于未选中状态?

演示

.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>

问题

在此处输入图像描述

4

2 回答 2

1

您可以使用[ngModel]绑定来显示check值和(ngModelChange)事件处理来处理更改:

<dx-check-box [ngModel]="check" (ngModelChange)="change($event)"></dx-check-box>

在事件处理程序中:

  1. 设置新check
  2. 通过调用强制更改检测ChangeDetectorRef.detectChanges
  3. check值重新设置为false
change(value) {
  this.check = value;
  this.changeDetectorRef.detectChanges();
  this.check = false;
  ...
}

请参阅此 stackblitz以获取演示。

于 2020-03-24T15:00:07.317 回答
0

我试过简单

<dx-check-box [value]="false"></dx-check-box>

但对我来说它不起作用。

似乎是一个错误或什么的。

解决方法选项是:

  1. <dx-check-box [value]="false" [disable]="true"></dx-check-box>- 工作,看起来有点不同,但你可以设置一些样式css让它看起来像它没有被禁用

  2. div在复选框上绘制透明,它可以防止input被点击

于 2020-03-24T14:56:48.833 回答