自定义表单控件(基于nz-checkbox)

本文介绍了如何在Angular中创建自定义表单组件,并着重讲解了实现ControlValueAccessor接口的重要性,该接口用于实现表单模型与视图间的双向绑定。文章详细阐述了接口中的writeValue、registerOnChange和registerOnTouched方法,并指出setDisabledState是可选的。通过这些方法,自定义组件能无缝集成到Angular的模板驱动或响应式表单中。此外,还提供了一个ky-checkbox组件的示例代码。
摘要由CSDN通过智能技术生成

1.在自定义的表单组件中,需要实现ControlValueAccessor接口,这个接口的作用有两个:

  • 将form模型中的值映射到视图中
  • 当视图发生变化时,通知form directives或form controls

在自定义的表单组件中实现ControlValueAccessor接口的方式是将其注册为NG_VALUE_ACCESSOR:

	providers: [
	    {
   
	      provide: NG_VALUE_ACCESSOR,
	      useExisting: forwardRef(() => KyCheckboxComponent ),
	      multi: true,
	    },
    ],

另外接口ControlValueAccessor中有三个必须实现的的方法:

  1. writeValue(obj:any):将表单模型的中的值写入视图中
	 // model view -> view value
     writeValue(value: any): void {
   
       this.kyChecked = value;
     }
  1. registerOnChange(fn:any):用于注册在视图中某些内容发生改变时应该调用的的处理处理程序。它获取一个函数,告诉其他表单指令和表单控件更新其值。
	 // view value ->model value
     registerOnChange(fn: any): void {
   
       this.onModelChange = fn;
     }
  1. registerOnTouched(fn:any):它专门为空间接收
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值