首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在角度材料2中创建一个自动完成?

如何在角度材料2中创建一个自动完成?
EN

Stack Overflow用户
提问于 2017-05-07 19:42:38
回答 1查看 422关注 0票数 3

我正在尝试用angular-material2实现一个自动完成,但是在Visual代码中我得到了以下错误:

没有NgControl的提供者

下面是我的代码:

myForm.component.html

代码语言:javascript
复制
<form #form="ngForm" (ngSubmit)="getEditContactForm(form.value)" ngNativeValidate>

    <div fxLayout="column" fxLayoutGap="8px">

        <md-input-container> 
            <input mdInput placeholder="State" [mdAutocomplete]="auto" [formControl]="stateCtrl">
        </md-input-container> 
        <md-autocomplete #auto="mdAutocomplete">
            <md-option *ngFor="let state of filteredStates | async" [value]="state">
              {{ state }}
            </md-option>
        </md-autocomplete>
        <md-input-container class="example-full-width">
            <input mdInput ngModel name="country" placeholder="Χώρα" required>
        </md-input-container> 
    </div>
    <md-dialog-actions align="center" style="margin-top:50px;">
        <div fxLayout="row" fxLayoutGap="10px">
            <button md-button type="button" (click)="sidenavInside.close()">Cancel</button>
            <button md-raised-button color="primary">Save</button>
        </div>
    </md-dialog-actions>
</form>

myForm.component.ts

代码语言:javascript
复制
import { Component, OnInit } from '@angular/core';
import {FormControl, FormsModule, FormGroup } from '@angular/forms';
import 'rxjs/add/operator/startWith';


@Component({
  selector: 'app-admin-contact-form',
  templateUrl: './admin-contact-form.component.html',
  styleUrls: ['./admin-contact-form.component.css'],
})
export class AdminContactFormComponent implements OnInit {

  inputValue: any;

  stateCtrl: FormControl;
  filteredStates: any;

  states = [
    'Alabama',
    'Alaska',
    'Arizona',
    'Arkansas',
    'California',
    'Colorado',
  ];


  constructor() {

    this.stateCtrl = new FormControl();
    this.filteredStates = this.stateCtrl.valueChanges
        .startWith(null)
        .map(name => this.filterStates(name));

  } 

  filterStates(val: string) {
    return val ? this.states.filter(s => new RegExp(`^${val}`, 'gi').test(s))
               : this.states;
  }

  getEditContactForm(v){
    console.log(v);
  }

  ngOnInit() {
  }

}

有人能帮我找出我是怎么得到这个错误的吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-05-08 01:54:25

在使用model-driven表单时,必须在AppModule中导入ReactiveFormsModule

代码语言:javascript
复制
 imports { ReactiveFormsModule } from '@angular/forms';

@NgModule({
     imports: [
         ReactiveFormsModule,
     ],
     ....
 })
 export class AppModule {


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

https://stackoverflow.com/questions/43835870

复制
相关文章

相似问题

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