不,这不是一个重复的问题.你看,在SO和Github中有很多问题和问题规定我将这个指令添加到一个带有[(ngModel)]指令但不包含在表单中的标签中.如果我不添加它我会收到一个错误:
ERROR Error: No value accessor for form control with unspecified name attribute
Run Code Online (Sandbox Code Playgroud)
好的,如果我把这个属性放在那里,错误就消失了.可是等等!没人知道它的作用!Angular的文档根本没有提到它.当我知道我不需要它时,为什么需要值访问器?该属性如何连接到值访问器?这个指令做了什么?什么是价值追求者以及如何使用它?
为什么每个人都继续做他们不理解的事情?只需添加这行代码即可,谢谢,这不是编写好程序的方法.
然后.我在Angular上阅读了关于表单的两个大型指南,以及关于以下内容的部分ngModel:
你知道吗?没有提到任何值访问器或ngDefaultControl.它在哪里?
我是angular4的新手,这是我的组件:
@Component( {
selector: 'input-extra-field',
template: `
<div class="form-group" [formGroup]="formGroup" >
<switch [attr.title]="field.etiquette"
[attr.value]="field.valeur" [(ngModel)]="field.valeur"
[formControl]="fieldControl" [attr.id]="name" [attr.disabled]="disabled">
</switch>
<error-messages [control]="name"></error-messages>
</div>
`
} )
Run Code Online (Sandbox Code Playgroud)
这是我的班级:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在编译时得到的错误:
ERROR Error: No value …Run Code Online (Sandbox Code Playgroud) 我正在使用Angular2-rc5,我目前在登录页面上收到错误.我正在尝试创建一个表单,但是控制台抛出异常告诉我formcontroll即使我在init上创建它也无法找到我的s.知道我为什么会收到这个错误吗?
登录组件
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl, FormBuilder, Validators } from '@angular/forms';
import { LoginService } from './login.service';
import { User } from '../../models/user';
@Component({
selector: 'login',
providers: [LoginService],
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
private loginForm: FormGroup; // our model driven form
private submitted: boolean; // keep track on whether form is submitted
private events: any[] = []; // use later to display form changes
constructor(private …Run Code Online (Sandbox Code Playgroud)