如何在Angular 2

时间:2016-05-13 18:05:29

标签: validation angular

我目前正在使用Angular 2的2.0.0-rc.1版本,并且我正在尝试创建一些基本的表单验证但是我几天都没有用这个来移动,因为我无法解决此错误:

No provider for ControlContainer

我在Github上检查了this open issue,但很少有人知道为什么会这样或者如何解决它。从第一个测试版开始就是这样的。

我已经尝试导入并注入大部分相关的内容(FORM_PROVIDERSFORM_DIRECTIVES,但是我最近的尝试是这样的:

import {NgForm, ControlContainer} from '@angular/common';

@Component({
  selector: 'form-input',
  templateUrl: 'alonglongtemplateurl.html',
  styleUrls: ['alonglongstyleurl.css'],
  directives: [
    NgForm
  ],
  providers: [
    ControlContainer
  ]
})

模板:

<div>
  <input ngControl="name">
</div>

然后我像这样使用它:

<form #myForm="ngForm">
  <form-input></form-input>
</form>

尽管我注入了它要求的东西,但我仍然得到同样的错误。

自最新版本以来,在Angular 2中使用表单元素验证的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我认为您需要在输入周围使用表单元素才能使用ngControl

<div>
  <form>
    <input ngControl="name">
  </form>
</div>

表单的指令是平台的一部分,因此您不需要明确地包含它们。提供者也一样。