首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误错误:开关上具有未指定名称属性的表单控件没有值访问器

错误错误:开关上具有未指定名称属性的表单控件没有值访问器
EN

Stack Overflow用户
提问于 2017-09-26 16:59:14
回答 23查看 263.6K关注 0票数 163

这是我的Angular组件:

代码语言:javascript
运行
复制
@Component( {
    selector: 'input-extra-field',
    template: `
            
                
                
                
            
    `
} )

这是我的类:

代码语言:javascript
运行
复制
export class SwitchExtraField extends ExtraField {
    @Input() field: ExtraFormField;
    @Input() entity: { fields: Object };
    @Input() formGroup: FormGroup;

    constructor( formDir: NgForm ) {
        super( null, null, formDir );
    }

    get disabled(): string {
        if ( this.field && !!this.field.saisissable && !this.field.saisissable )     {
            return 'disabled';
        }
        return null;
    }
}

这是我在编译时得到的错误:

代码语言:javascript
运行
复制
ERROR Error: No value accessor for form control with unspecified name attribute
  at _throwError (forms.es5.js:1918)
  at setUpControl (forms.es5.js:1828)
  at FormControlDirective.webpackJsonp.../../../forms/@angular/forms.es5.js.FormControlDirective.ngOnChanges (forms.es5.js:4617)

当我将元素开关更改为输入时,它会正常工作,因为我知道我对其他组件使用了相同的结构,并且它工作得很好。

EN

回答 23

Stack Overflow用户

回答已采纳

发布于 2017-12-13 22:22:05

我通过添加

属性添加到包含

属性。

票数 234
EN

Stack Overflow用户

发布于 2019-01-18 02:48:50

我也遇到了同样的问题,问题是我的子组件有一个

命名

..。

所以我只需要改变一下:

至:

ts:

代码语言:javascript
运行
复制
@Input()
control:FormControl;
票数 154
EN

Stack Overflow用户

发布于 2019-02-19 05:31:41

当我在Angular 7中编写自定义表单控件组件时,我也收到了这个错误。然而,没有一个答案适用于Angular 7。

在我的示例中,需要将以下内容添加到

装饰者:

代码语言:javascript
运行
复制
providers: [
    {
      provide: NG_VALUE_ACCESSOR,
      useExisting: forwardRef(() => MyCustomComponent),  // replace name as appropriate
      multi: true
    }
  ]

这是一个“我不知道它为什么有效,但它确实有效”的案例。将其归因于Angular部分糟糕的设计/实现。

票数 62
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46422007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档