angular - 从组件内部检查 Angular4 表单是否有效

标签 angular

以下answer处理 Angular2,但由于 Angular4 中的 Angular 对表单进行了大量更改,因此该解决方案不起作用。任何人都知道如何执行此操作(无需处理 FormGroups 等)。基本上,我怎样才能得到 Angular4 的答案?

最佳答案

首先,您提供的链接使用了 beta 版的 angular。它从 @angular/common 导入 FormBuilder、Validator 等。 您必须像这样从 @angular/forms 导入 app.module 中的 FormsModule

import { FormsModule } from '@angular/forms';
@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
   //... more code

其次,您可以通过两种方式使用 Angular 形式,模板驱动和模型驱动( react 形式)。由于您没有提供任何您正在处理的示例代码,这里有一个 react 形式的示例

form: FormGroup;

onSubmit(){
    //checks if form is valid
       if( this.form.valid){
          //more code here
        }
}

您确实需要在您的代码中使用 FormGroup,但您可以使用 FormBuilder 以便不使用 FormControls。

 form: FormGroup;

  constructor( private fb: FormBuilder) {
    this.form = fb.group({
        email: ['', [Validators.required, Validators.minLength(5), Validators.email]],
        password: ['', [Validators.required,  Validators.minLength(6)]],
      }
    );


  }

关于angular - 从组件内部检查 Angular4 表单是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44771930/

相关文章:

当值发生变化时,Angular 组件不会更新 UI

css - 在 Angular Material 表中使用省略号

angular - 从 setTimeout Observable 方法访问一个值

html - Angular2 - 在模板之前获取组件html

angular - 如何在 Angular 中的 HTTP post 请求中传递 url 中的查询参数

angular - 如何在不使用对象引用的情况下比较Angular中的两个对象

angular - 在 Angular 6 中使用 location.back() 后不再请求数据 - 需要 ReplaySubject 吗?

javascript - Angular ngrx 属性 'payload' 在类型 'Action' 上不存在

angular - 如果父组件有同一组件的两个子组件,则调用子组件的方法

http - 如何取消 Angular 2 中的 HTTPRequest?