Angular的ControlValueAccessor的WriteValue方法不触发ngModelChange事件。
创始人
2024-10-24 02:31:24
0

在Angular中,ControlValueAccessor接口用于创建自定义表单控件,并与ngModel指令进行交互。其中,WriteValue方法用于从父组件向自定义控件写入值。

如果在使用ControlValueAccessor时,写入值后ngModelChange事件没有被触发,可以尝试以下解决方法:

  1. 确保在自定义控件中正确实现ControlValueAccessor接口的方法。特别是在WriteValue方法中,要确保正确触发ngModelChange事件。以下是一个示例:
import { Component, forwardRef } from '@angular/core';
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';

@Component({
  selector: 'app-custom-input',
  template: `
    
  `,
  providers: [
    {
      provide: NG_VALUE_ACCESSOR,
      useExisting: forwardRef(() => CustomInputComponent),
      multi: true
    }
  ]
})
export class CustomInputComponent implements ControlValueAccessor {
  value: any;
  onChange: any = () => {};

  writeValue(value: any): void {
    this.value = value;  // 写入值
    this.onChange(value); // 触发ngModelChange事件
  }

  registerOnChange(fn: any): void {
    this.onChange = fn;
  }

  registerOnTouched(fn: any): void {}

  setDisabledState(isDisabled: boolean): void {}
}
  1. 确保在父组件中正确绑定ngModel和ngModelChange事件。确保使用了正确的双向绑定语法[(ngModel)],并且在ngModelChange事件处理器中做了相应的处理。以下是一个示例:

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

@Component({
  selector: 'app-parent',
  template: `
    
  `
})
export class ParentComponent {
  customValue: any;

  onCustomValueChange(value: any): void {
    console.log('ngModelChange event triggered:', value);
  }
}

通过以上方法,当通过WriteValue方法写入值到自定义控件时,ngModelChange事件应该会被正确触发,并且在父组件中可以对事件进行处理。

相关内容

热门资讯

AA德州教程!wepower有... AA德州教程!wepower有辅助软件(wepoke插件)wEPOKE(的确真的有挂);值得一提的是...
微扑克辅助软件!微扑克有辅助,... 微扑克辅助软件!微扑克有辅助,微扑克真是有挂,wpk教程(有挂解说)1、这是跨平台的微扑克黑科技,在...
九分钟了解!乐逍遥跑胡子有挂吗... 九分钟了解!乐逍遥跑胡子有挂吗,欢乐龙城3外挂是真的么,详细教程(有挂实操);1.欢乐龙城3外挂是真...
玩家必备教程!天天麻将川南纸牌... 玩家必备教程!天天麻将川南纸牌助赢神器购买(透视辅助)一直是真的有挂(2026已更新)(哔哩哔哩)1...
wepokeai代打的胜率!w... wepokeai代打的胜率!wepoke辅助挂(辅助透视)wepower(一般真的有挂);小薇(透视...
微扑克ai机器人!微扑克可以用... 微扑克ai机器人!微扑克可以用模拟器,微扑克wpk真的有辅助(一贯是有挂)是一款可以让一直输的玩家,...
七分钟了解!决战十三水有外 挂... 七分钟了解!决战十三水有外 挂吗,兄弟十三水专用平台辅助器,wpk教程(有挂细节)1、实时兄弟十三水...
揭秘一下!潮汕暗宝可以作假吗(... 揭秘一下!潮汕暗宝可以作假吗(透明挂)好像有挂(2021已更新)(哔哩哔哩)1、玩家可以在潮汕暗宝可...
wepoke计算辅助!wepo... wepoke计算辅助!wepoke辅助德之星,wepoker好像真的有挂,微扑克教程(有挂详情)1、...
微扑克辅助器ios!微扑克辅助... 微扑克辅助器ios!微扑克辅助器是真的,微扑克大厅都是机器人,黑科技教程(有挂细节)1、起透看视 微...