代码之家  ›  专栏  ›  技术社区  ›  esseara

角度6-更改复选框样式是否选中

  •  0
  • esseara  · 技术社区  · 7 年前

    我有一个复选框列表,我想在选中的复选框下面加下划线。我的代码如下所示:

    TS文件:

    currentQuarter: string;
    quarters: Observable<MeseRiferimento[]>;
    q1: MeseRiferimento = new MeseRiferimento();
    q2: MeseRiferimento = new MeseRiferimento();
    
    ngOnInit() {
    q1.desc = "One";
    q1.id = "1";
    
    q2.desc = "Two";
    q2.id = "2"
    
    currentQuarter = q1.id;
    quarters.of([q1, q2]);
    }
    
    isQuarterSelected(q: MeseRiferimento): boolean {
    return this.currentQuarter === this.getKeyFromQuarter(q);
    }
    

    HTML文件:

    <div *ngFor="let q of quarters | async" class="col-1 my-auto m-stati">
    <label class="custom-control custom-checkbox ra-check">
    <input type="checkbox" class="custom-control-input" [ngClass]="{'checked': isQuarterSelected(q) }">
    <span class="custom-control-indicator"></span>
    <span class="custom-control-description">{{q.descrizione}}</span>
    </label>
    </div>
    

    CSS文件:

    .custom-control-input:checked~.custom-control-indicator {   
    color: #fff;   
    background-color: #3bb8eb; 
    }
    

    以下是此代码的问题:
    1。当我加载页面时,默认的checked复选框正确地选择了类'checked',但是没有应用css,也就是说,它没有下划线
    2。当我手动选中一个复选框时,类“checked”会正确应用,css也会应用
    三。当我手动选择另一个复选框时,类“checked”会正确地从一个切换到另一个,但前者的css不会更新,即前一个复选框仍带下划线

    谢谢你的建议。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Christian Vincenzo Traina    7 年前
    .custom-control-input:checked~.custom-control-indicator
    

    :checked 并不意味着它有 checked 类,但这意味着它实际上是检查过的。如果要选择 选中的 类,用一个点代替冒号:

    .custom-control-input.checked~.custom-control-indicator