Geo*_*off 2 checkbox typescript angular
我正在使用 angular2 cli,这是我设置表单的方式
在组件中
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);
}
Run Code Online (Sandbox Code Playgroud)
在 html 模板中,我使用了这样的 Primeng 复选框
<p-checkbox formControlName="needs_reset" label="User has to set password"
(onChange)="Onpwdchange()"></p-checkbox>
<p-checkbox formControlName="sendcred" name="send cred" label="Send user
login credentials " (onChange)="Oncredchange()"></p-checkbox>
Run Code Online (Sandbox Code Playgroud)
方法onpwdchange()和 oncredchange() 只有一个console.log("clicked")
每当我检查复选框时都会出现错误
this.model.push is not a function //i havent implemented push method anywhere
Run Code Online (Sandbox Code Playgroud)
我已经检查了这个 primeng2 问题,但他们建议使用angular2 cli 中没有的disableDeprecatedForms()和provideForms()
我如何解决这个问题
根据 PrimeNG 文档
https://www.primefaces.org/primeng/#/checkbox
formControlName 不适用于primeNG 的复选框。
所以你需要这样做
<p-checkbox value="xyz" [formControl]="myFormGroup.controls['name']"></p-checkbox>
Run Code Online (Sandbox Code Playgroud)
如果你想要二进制值真/假
<p-checkbox binary="true" [formControl]="myFormGroup.controls['name']"></p-checkbox>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5336 次 |
| 最近记录: |