带预充的Angular2复选框失败
我正在使用angular2 cli,这是我设置表单的方式 在组件中带预充的Angular2复选框失败,angular,typescript,checkbox,Angular,Typescript,Checkbox,我正在使用angular2 cli,这是我设置表单的方式 在组件中 export class UsersAddComponent implements OnInit { ngOnInit() { this.userForm = this._formBuilder.group({ role: ['', [Validators.required]], others: this._formBuilder.array([]) //for adding multipe
export class UsersAddComponent implements OnInit {
ngOnInit() {
this.userForm = this._formBuilder.group({
role: ['', [Validators.required]],
others: this._formBuilder.array([]) //for adding multipe form inputs
});
this.addNewUser();
}
initAddress() {
return this._formBuilder.group({
sendcred: [''], //checkbox needs no validation in my logic
needs_reset: [''], // ''
.....other fields here
});
}
addNewUser() { //this is called whenever add new user button is clicked
const control = <FormArray>this.userForm.controls['others'];
const addrCtrl = this.initAddress();
control.push(addrCtrl);
}
我检查过了,但他们建议使用angular2 cli中不可用的disableDeprecatedForms()
和ProviderForms()
我如何解决这个问题
this.infraestructuraServiciosForm = this.fb.group({
....
complementarios : new FormControl('', []),
......
});
this.infraestructuraServiciosForm.controls['complementarios'].setValue([]);
<p-fieldset legend="Complementarios">
<body>
<div class="ui-g ui-fluid">
<div class="ui-g-12">
<div class="ui-g-3">
<p-checkbox name="cpl" value="acerasBordillos" label="Aceras y Bordillos" formControlName="complementarios" (onChange)="haCambiadoAcerasBordillos(checked)"></p-checkbox>
</div>
<div class="ui-g-3">
<p-checkbox name="cpl" value="soloBordillos" label="Solo Bordillos" formControlName="complementarios" (onChange)="haCambiadoSoloBordillos(checked)"></p-checkbox>
</div>
<div class="ui-g-3">
<p-checkbox name="cpl" value="telefonoFijo" label="Red de Teléfono Fijo" formControlName="complementarios"></p-checkbox>
</div>
<div class="ui-g-3">
<p-checkbox name="cpl" value="alumbradoPublico" label="Alumbrado Público" formControlName="complementarios"></p-checkbox>
</div>
</div>
</div>
</body>
</p-fieldset>
根据底漆文件 formControlName不适用于Priming的复选框 所以你需要这样做
<p-checkbox value="xyz" [formControl]="myFormGroup.controls['name']"></p-checkbox>
如果需要二进制值true/false
<p-checkbox binary="true" [formControl]="myFormGroup.controls['name']"></p-checkbox>
禁用不推荐的表单
和提供变形
都是古老的历史(期末前),所以我的问题中有没有解决办法?我不知道。从几个月以来就没有做过太多的表单。好的,感谢您的持续支持PrimeAfaces!=我期待了两天发送“真实”值。“二进制”属性解决了这个问题。非常感谢。一旦我设置了binary=true
formControlName=…部分与Priming 9.0.0一起工作
<p-checkbox value="xyz" [formControl]="myFormGroup.controls['name']"></p-checkbox>
<p-checkbox binary="true" [formControl]="myFormGroup.controls['name']"></p-checkbox>