Angular md-erroor仅在单击时才起作用

时间:2017-10-17 07:33:45

标签: angular

现在readData(){ let i=0 let len = elements.length for (; i < len; i++){ this.setState({progress:i/len}); this.process(elements[i]) // take some time } } 在加载页面并输入输入栏时有效,但我想仅在单击“添加”按钮时激活它。如果你能给出建议,那就太有用了。

md-error
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl, FormBuilder,Validators} from '@angular/forms'
import { MdInputModule } from '@angular/material'

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

  public details: [Detail];

  sample = new FormControl('',[
    Validators.required,
  ])

  myForm = this.builder.group({
    sample: this.sample
  });

constructor(
  private builder:FormBuilder,
  private MdInputModule: MdInputModule
){}

addDetail(){
  if(this.sample.errors !==null){
    console.log("データないよ")
  }else
  {console.log(this.sample.value)}
}

onSave(){}

ngOnInit() {}

}

class Detail{
  public sample : FormControl;
}

```

1 个答案:

答案 0 :(得分:0)

在您的打字稿中创建变量调用submitted并将其设置为false。 然后在输入上使用(change),如下所示:

<input mdInput type="number" (change)="submitted=false".
       required placeholder="数量" [formControl] ="sample"/>

在您addDetail()方法上添加:this.submitted = true; 然后在你的md-error add:

<md-error *ngIf="this.sample.errors?.required && submitted">
 need to inform.
</md-error>

所以每次输入值改变时,它都假定你还没有提交。然后,当您提交时,您将变量设置为true,而*ngIf将评估这两个条件

希望它有所帮助。

此致