材料2选择Angular2不起作用

时间:2016-11-27 03:22:03

标签: angular select angular-material2

尝试在我的角度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"没有收到任何错误,但下拉不正确。

2 个答案:

答案 0 :(得分:0)

当你看到可能的动作1.如果'md-option'是一个Angular组件,它在控制台中有'value ..... error。

  • Angular没有编译你的组件(md-option),它并不意味着只是一个简单的html标签,所以你不能绑定任何东西,检查如下:

    1-您正在尝试使用指令/组件,但您尚未声明它(如果您使用的是angular2 rc5&lt;)或者您没有将它放在指令数组中(如果您使用的是angular2) rc5&gt;)。

2-你正在使用一个组件,但你应该在你的应用程序的导入列表中导入它的模块。

  • Angular编译了但是:

3 - 如果不是上面的那个,那么你正在向组件发送一些东西,但是那个组件不期望它,换句话说,该组件在它的输入数组中没有该属性。

答案 1 :(得分:0)

不确定您是否使用angular-material2作为问题标记,因为您说的是“Google材料”,但如果您实际使用的是angular-material2,则暂时没有md-select可用

查看此链接,了解现在正在发布的组件:https://github.com/angular/material2

如果您使用的是其他库而不是angular-material2,则可能需要更新您的问题,以删除附加的angular-material2标记,而不会获得无关的答案。

相关问题