使用默认值验证文本框

时间:2018-09-10 12:41:38

标签: angular html5 mean-stack

我有一个文本框,如下所示:

  <div form="form-group">
    <label for="Title"> <h3>Title:</h3>  </label>
    <div [ngClass]="{
    'has-errors': (dataProcessingEditForm.controls.Title.errors && dataProcessingEditForm.controls.Title.dirty ),

    'has-success': (!dataProcessingEditForm.controls.Title.errors )
    }">
      <input type="text" name ="Title" class="form-control" autocomplete="off" placeholder="*Title"
             value="{{theDP.title}}" formControlName="Title">
      <!--Validations-->
      <ul class="help-block">
        <li *ngIf="(dataProcessingEditForm.controls.Title.errors?.required && dataProcessingEditForm.controls.Title.dirty)
                   ">
          This field is required</li>
      </ul>
    </div>
  </div>

我在ngOnInit()函数中从数据库读取的数据填充了文本框。 显然,验证者没有意识到它的价值,因此要求我填写它。我应该如何修改验证器以实现价值?我已经使用了以下内容:

'has-success': (!dataProcessingEditForm.controls.Title.errors || dataProcessingEditForm.controls.Title.hasValue )

但似乎不起作用。 在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

只需用ngModel替换值

<div form="form-group">
    <label for="Title"> <h3>Title:</h3>  </label>
    <div [ngClass]="{
    'has-errors': (dataProcessingEditForm.controls.Title.errors && dataProcessingEditForm.controls.Title.dirty ),

    'has-success': (!dataProcessingEditForm.controls.Title.errors )
    }">
      <input type="text" name ="Title" class="form-control" autocomplete="off" placeholder="*Title"
             ngModel="theDP.title" formControlName="Title">
      <!--Validations-->
      <ul class="help-block">
        <li *ngIf="(dataProcessingEditForm.controls.Title.errors?.required && dataProcessingEditForm.controls.Title.dirty)
                   ">
          This field is required</li>
      </ul>
    </div>
  </div>