尝试在我的角度2应用程序中使用Google材质2。 并使用Reactive Form或Data Driven表单。 我的数组是
states = [
{ value: 'KA', viewValue: 'Karnataka' },
{ value: 'GJ', viewValue: 'Gujarat' },
{ value: 'DL', viewValue: 'Delhi' }
];
和表单构建器
this.registrationForm = this.fb.group({
accountInformation: this.fb.group({
fullName: ['', Validators.required],
email: '',
mobileNumber: '',
password: '',
confirmPassword: '',
}),
currentAddress: this.fb.group({
city: '',
state: ''
}),
});
其中<md-input formControlName="city" placeholder="City*">
正在运作。
但是formControlName无法正常工作
<md-select placeholder="Select your state" formControlName="state">
<option *ngFor="let state of states" [value]="state.value"> {{ state.viewValue }} </option>
</md-select>
收到此错误
No value accessor for form control with path: 'currentAddress -> state' ; Zone: angular ; Task: Promise.then ; Value:
但没有formControlName="state"
没有收到任何错误,但下拉不正确。
答案 0 :(得分:0)
当你看到可能的动作1.如果'md-option'是一个Angular组件,它在控制台中有'value ..... error。
Angular没有编译你的组件(md-option),它并不意味着只是一个简单的html标签,所以你不能绑定任何东西,检查如下:
1-您正在尝试使用指令/组件,但您尚未声明它(如果您使用的是angular2 rc5&lt;)或者您没有将它放在指令数组中(如果您使用的是angular2) rc5&gt;)。
2-你正在使用一个组件,但你应该在你的应用程序的导入列表中导入它的模块。
3 - 如果不是上面的那个,那么你正在向组件发送一些东西,但是那个组件不期望它,换句话说,该组件在它的输入数组中没有该属性。
答案 1 :(得分:0)
不确定您是否使用angular-material2
作为问题标记,因为您说的是“Google材料”,但如果您实际使用的是angular-material2
,则暂时没有md-select
可用
查看此链接,了解现在正在发布的组件:https://github.com/angular/material2
如果您使用的是其他库而不是angular-material2
,则可能需要更新您的问题,以删除附加的angular-material2
标记,而不会获得无关的答案。