【发布时间】:2017-03-17 04:48:28
【问题描述】:
我正在使用这样的模型驱动形式。 就像正常的验证一样,如果用户名和密码丢失,我希望我显示一条错误消息。
只要用户名和密码无效,就应该禁用提交按钮。
<div class="login">
<form #f="ngForm" (ngSubmit)="dologin(f)">
<div class="form-group">
<label for="username">Username</label>
<input id="username" type="text" class="form-control" name ="username" ngModel #username="ngModel">
<div [hidden]="username.valid" class="alert alert-danger"> Username is required.</div>
</div>
<div class="form-group">
<label for="password">Password</label>
<input id="password" type="password" class="form-control" name ="password" ngModel #password="ngModel">
<div [hidden]="password.valid" class="alert alert-danger"> Password is required.</div>
</div>
<button type="submit" [disabled]="username.length<0 || password.length<0" class="btn btn-primary" type="submit">Login</button>
</form>
</div>
- 我看到验证 div 的行为很奇怪。有时 它显示“需要密码”,有时不是。
- 我想禁用提交按钮,直到表单有效为止。我试过了
[禁用]="!f.valid"
但是当我把它打印出来时 f 总是有效的 虽然我没有在用户名和密码中输入任何数据。
组件:
constructor(private router: Router,private authenticationService : AuthenticationService,private httpService:HttpService,private formBuilder:FormBuilder) {
this.form=formBuilder.group({
username:['',Validators.required],
password:['',Validators.required]
});
}
更新
无法绑定到“formGroup”,因为它不是“form”的已知属性。 (" ][formGroup]="form" (ngSubmit)="dologin(form.value)"> ][formControl]="form.controls['password']"> [错误->] 用户名 [错误->]
"): LoginComponent@4:8 NgControl 没有提供程序 (" 密码 [错误->];任务:Promise.then ;价值: 错误:模板解析错误:(…)错误:模板解析错误:不能 绑定到“formGroup”,因为它不是“form”的已知属性。 ("
][formGroup]="表格" (ngSubmit)="dologin(form.value)"> ][formControl]="form.controls['password']"> [错误->] 用户名 [错误->]
谢谢。
【问题讨论】: