物料复选框选中的属性不起作用

时间:2019-04-25 04:41:29

标签: angular angular-material

mat-checkbox属性设置为true时,未默认检查

checked

<mat-checkbox value="true" formControlName="updates" checked="true">Get Updates</mat-checkbox>

5 个答案:

答案 0 :(得分:2)

未使用已选中。如果您使用了反应式表单,则只需在字段中设置一个值

//When you create the form
this.form=new FormGroup({
   updates:new FormControl(true)
}
//Or in a function
this.form.get('updates').setValue(true)

<!--no value, no checked, just formControlName-->
<form [formGroup]="form">
   <mat-checkbox formControlName="updates" >Get Updates</mat-checkbox>
</form>

答案 1 :(得分:0)

使用双向绑定。

<mat-checkbox value="true" formControlName="updates" [checked]="true">Get Updates</mat-checkbox>

答案 2 :(得分:0)

就反应式表单而言,我还没有找到一种动态检查复选框并更新表单控件值的方法。

使用[checked]仅检查HTML复选框元素,但不影响控件。

如果必须根据变量的值动态处理该复选框,则可以使用这种方法。

具有用于确定检查状态的变量的setter和getter,更新setter中的表单控件。

类似的东西:

private _checkBoxChecked = false

set checkBoxChecked(val) {
  this._checkBoxChecked = val
  this.form.get('con').setValue(this.checkBoxChecked); // update your checbox control here
}

get checkBoxChecked() {
  return this._checkBoxChecked
}

ngOnInit() {
  this.form = this._fb.group({
    con: [this.checkBoxChecked]
  })
}

在此处查看示例:https://stackblitz.com/edit/angular-hba5pt?file=src%2Fapp%2Fapp.component.ts

在添加的示例中,它是普通输入复选框,而不是mat-input复选框,但理想情况下,这种方法也应适用。

答案 3 :(得分:0)

您可以使用带有[checked]属性的ngModel进行设置。 ngModel绑定属性应设置为“ true”:

component.html:

<mat-checkbox class = "example" [(ngModel)] = "myModel"> 
    <label>Hello example true </label> 
</mat-checkbox>

component.ts:

import { Component } from '@angular/core';

@Component({
  selector: 'material-component-app',
  templateUrl: 'app.component.html',
  styleUrls: ['app.component.css']
})

export class AppComponent {
  myModel = true;
}

答案 4 :(得分:0)

我前一段时间有这个问题,有几种选择:

  1. 您可以使用属性[[ngModel)] = varboolean

  2. 您可以设置属性[checked] = varboolean

  3. 您可以通过formcontrol在创建值时将其默认设置:

varboolean是声明为boolean类型的变量,默认情况下标记为“ true”:

public varboolean:boolean = true;

<mat-checkbox value="true" formControlName="updates" [(ngModel)] = varboolean >Get Updates</mat-checkbox>

<mat-checkbox value="true" formControlName="updates" [checked] = varboolean >Get Updates</mat-checkbox>


createForm() 
{
  this.form = this.formBuilder.group({           
      updates: new FormControl(true, [Validators.nullValidator]), 
  });
}