에러 백과

누락된 값 접근자

모든 커스텀 폼 컨트롤에는 값 접근자(value accessor)를 등록해야 합니다.

다음은 값 접근자를 제공하는 예제입니다.

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

오류 디버깅

앞서 설명했듯이 컨트롤에 있어야 하는 값 접근자가 누락된 상태입니다. 실제로 이 문제가 발생하는 원인은 다양합니다. 다음은 이 오류를 일으키는 것으로 알려진 문제입니다.

  1. 커스텀 폼 컨트롤을 정의했다면 값 접근자를 제공했나요?
  2. 값이 없는 엘리먼트나 유효하지 않은 엘리먼트에 ngModel을 지정하지 않았나요? (예: <div [(ngModel)]="foo">)
  3. NgModule 안에서 선언한 커스텀 폼 컨트롤을 사용하나요? 그렇다면 해당 NgModule을 불러왔는지 확인하세요.
  4. 서드 파티 커스텀 폼 컨트롤에 ngModel을 사용하나요? 해당 컨트롤이 값 접근자를 제공하는지 확인하세요. 제공하지 않는다면 컨트롤의 엘리먼트에 **ngDefaultControl**을 사용하세요.
  5. 커스텀 폼 컨트롤을 테스트하나요? 테스트 환경이 컨트롤을 인식하도록 설정하세요. Testbed.configureTestingModule을 사용하면 됩니다.
  6. webpack과 함께 Nx 및 모듈 페더레이션을 사용하나요? 폼 패키지를 공유하려면 webpack.config.js에 추가 설정이 필요할 수 있습니다.