gpt4 book ai didi

angular - Angular 2 中的表单输入验证(模板驱动)

转载 作者:太空狗 更新时间:2023-10-29 18:05:20 25 4
gpt4 key购买 nike

我想让这些输入在提交时显示一条消息,例如“需要名称”(因此提交按钮被禁用,直到里面有名称)。是否有一种简单的方法可以使用 Angular 2 模板驱动表单来做到这一点?我想我应该在表单的 HTML 中提供一些属性,并将其连接到一个组件,但在遵循文档中的示例时无法弄清楚。感谢所有帮助。

<form class="">
<div>
<p>Name:</p>
<input type="text">
</div>
<div class="link-input">
<p>City:</p>
<input type="text">
</div>

<button
(click)="submitForm()">
Submit
</button>
</form>

最佳答案

模板驱动的表单

我也有这个问题,我找到了答案,我想与你分享。我创建了一个带有验证的登录表单,如下所示:

login.component.html

<div class="col-md-6 col-md-offset-3">
<h2>Login</h2>
<form name="form" (ngSubmit)="f.form.valid && login()" #f="ngForm" novalidate>
<div class="form-group" [ngClass]="{ 'has-error': f.submitted && !username.valid }">
<label for="username">Username</label>
<input type="text" class="form-control" name="username" [(ngModel)]="model.username" #username="ngModel" required />
<div *ngIf="f.submitted && !username.valid" class="help-block">Username is required</div>
</div>
<div class="form-group" [ngClass]="{ 'has-error': f.submitted && !password.valid }">
<label for="password">Password</label>
<input type="password" class="form-control" name="password" [(ngModel)]="model.password" #password="ngModel" required />
<div *ngIf="f.submitted && !password.valid" class="help-block">Password is required</div>
</div>
<div class="form-group">
<button [disabled]="loading" class="btn btn-primary">Login</button>
<img *ngIf="loading" src="loading.gif" />
<a [routerLink]="['/register']" class="btn btn-link">Register</a>
</div>
</form>
</div>

login.component.ts

import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';

import { AlertService, AuthenticationService } from '../services';

@Component({
templateUrl: './login.component.html'
})

export class LoginComponent implements OnInit {
model: any = {};
loading = false;
returnUrl: string;

constructor(
private route: ActivatedRoute,
private router: Router,
private authenticationService: AuthenticationService,
private alertService: AlertService) { }

ngOnInit() {}

login() {
this.loading = true;
this.authenticationService.login(this.model.username, this.model.password)
.subscribe(
data => {
this.router.navigate([this.returnUrl]);
},
error => {
this.alertService.error(error);
this.loading = false;
});
}
}

我希望这对你有帮助,如果你需要任何帮助,你可以写信给我。我很高兴能帮助你。 @Smithy 我也在学习 angular 2。

关于angular - Angular 2 中的表单输入验证(模板驱动),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41148920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com