0

我有以下代码片段:

.html

<form
    novalidate
    (ngSubmit) = "onSubmit()"
    [ngFormModel] = "formModel">
        <label
            class = "mdl-textfield__label"
            for = "first">First</label>
        <input
            type = "text"
            ngControl = "firstCtrl"
            (keyup) = "onInputHandler($event)"
            class = "mdl-textfield__input"
            id = "first">

        <span *ngIf =
                  "!formModel.hasError('minLength', ['formModel', 'firstCtrl'])">Invalid inputs
        for first</span>
      </div>
..
</form>

。镖

@Component(
    selector: 'name-form',
    templateUrl: 'name_form.html',
    directives: const [
      FORM_DIRECTIVES,
      CORE_DIRECTIVES,
      MaterialTextfield,
      MaterialButton
    ] )
class NameForm implements AfterViewInit {

  Name name = new Name( );

  ControlGroup formModel;
  Control firstCtrl = new Control( '', Validators.minLength( 2 ) );

  NameForm( FormBuilder fb ) {
    formModel = fb.group( {
      "firstCtrl": firstCtrl,
      );
  }

  void onInputHandler( event ) {
    String property = event.target.id;

    switch ( property ) {
      case 'first':
        firstCtrl.valid ? (name.first = firstCtrl.value) : name.first;
        print( name.first );
        break;
      }
...
}

模板中的 *ngIf 可能存在问题,但我不确定。你能说说为什么没有显示错误信息吗?

谢谢

4

1 回答 1

0

尝试:

<span *ngIf="!formModel.controls.firstCtrl.valid">Invalid inputs for first</span>

我不知道 FormBuilder 上有任何 hasError 函数。

于 2016-01-30T08:55:27.763 回答