Skip to content

Commit 3844a63

Browse files
author
Mavlarn
committed
update
1 parent 28d6596 commit 3844a63

File tree

4 files changed

+36
-14
lines changed

4 files changed

+36
-14
lines changed

README.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
1-
# angular2-template-driven-forms
2-
A example base project for tutorial 'angular2-template-driven-forms'.
1+
# angular2-forms-tutorial
2+
A example project for tutorial.
33

44
## How to use.
55
Clone the repository, install the dependency and run:
66
```
7-
git clone https://github.com/Mavlarn/angular2-template-driven-forms
8-
cd angular2-template-driven-forms
7+
git clone https://github.com/Mavlarn/angular2-forms-tutorial
8+
cd angular2-forms-tutorial
99
npm install
1010
npm start
1111
```
12+
13+
## tags ##
14+
该项目包含几个有关Angular2表单的实例,分别用下面的tag打了标签:
15+
* template-driven
16+
* model-driven
17+
18+
可以使用下面的方法获取相关实例的代码:
19+
```
20+
git checkout template-driven
21+
```

app/template-forms/template-forms.component.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
border-left: 5px solid #42A948; /* green */
44
}
55

6-
.ng-invalid:not(form) {
6+
.ng-invalid:not(form).ng-invalid:not(fieldset) {
77
border-left: 5px solid #a94442; /* red */
88
}
99

app/template-forms/template-forms.component.html

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
<p>个人信息<small> (更新个人信息)</small>
2-
</p>
1+
<p>个人信息<small> (更新个人信息)</small></p>
32

43
<div>
54
<form class="form-horizontal" #userForm="ngForm" (ngSubmit)="logForm(userForm)" novalidate *ngIf="active">
@@ -24,24 +23,28 @@
2423
<div class="form-group">
2524
<label class="col-sm-2 control-label">电话:</label>
2625
<div class="col-sm-10">
27-
<input class="form-control" type="text" name="mobile" [ngModel]="user.mobile" #mobile="ngModel" required>
28-
<span *ngIf="mobile.pristine" class="label label-primary">未修改</span>
29-
<span *ngIf="mobile.dirty" class="label label-warning">已修改</span>
30-
<span *ngIf="mobile.valid" class="label label-success">有效</span>
26+
<input class="form-control" type="text" name="mobile" [ngModel]="user.mobile" required minlength="11" maxlength="11">
27+
<span *ngIf="userForm.controls.mobile?.pristine" class="label label-primary">未修改</span>
28+
<span *ngIf="userForm.controls.mobile?.dirty" class="label label-warning">已修改</span>
29+
<span *ngIf="userForm.controls.mobile?.valid" class="label label-success">有效</span>
30+
<div [hidden]="userForm.controls.mobile?.valid || userForm.controls.mobile?.pristine" class="alert alert-danger">
31+
<p *ngIf="userForm.controls.mobile?.errors?.minlength">电话长度必须为11</p>
32+
<p *ngIf="userForm.controls.mobile?.errors?.required">必须输入电话</p>
33+
</div>
3134
</div>
3235
</div>
3336

3437
<fieldset ngModelGroup="address">
3538
<div class="form-group">
3639
<label class="col-sm-2 control-label">城市:</label>
3740
<div class="col-sm-10">
38-
<input class="form-control" type="text" name="city" [ngModel]="user.address.city" #city="ngModel" required>
41+
<input class="form-control" type="text" name="city" [ngModel]="user.address.city" required>
3942
</div>
4043
</div>
4144
<div class="form-group">
4245
<label class="col-sm-2 control-label">街道:</label>
4346
<div class="col-sm-10">
44-
<input class="form-control" type="text" name="street" [ngModel]="user.address.street" #street="ngModel" required>
47+
<input class="form-control" type="text" name="street" [ngModel]="user.address.street" required>
4548
</div>
4649
</div>
4750
</fieldset>
@@ -50,6 +53,7 @@
5053
<button type="submit" class="btn btn-default col-sm-2">保存</button>
5154
<div class="col-sm-10">
5255
<p class="error-msg">{{errorMsg}}</p>
56+
<p class="error-msg">{{nameErrorMsg}}</p>
5357
</div>
5458
</div>
5559
<div class="form-group">

app/template-forms/template-forms.component.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export class TemplateFormsComponent {
1010
user: any;
1111
active: Boolean = true;
1212
errorMsg: String;
13+
nameErrorMsg: String;
1314
constructor() {
1415
this.user = {
1516
name: '张三',
@@ -24,8 +25,13 @@ export class TemplateFormsComponent {
2425
if (theForm.invalid) {
2526
this.errorMsg = 'validation errors!';
2627
if (theForm.controls['name'].errors) {
27-
this.errorMsg += JSON.stringify(theForm.controls['name'].errors);
28+
this.nameErrorMsg = 'name error:' + JSON.stringify(theForm.controls['name'].errors);
29+
} else {
30+
this.nameErrorMsg = null;
2831
}
32+
} else {
33+
this.errorMsg = null;
34+
this.nameErrorMsg = null;
2935
}
3036
console.log(theForm.value);
3137
}
@@ -36,9 +42,11 @@ export class TemplateFormsComponent {
3642
};
3743
this.active = false;
3844
setTimeout(() => this.active = true, 0);
45+
return false;
3946
}
4047
reset(theForm: NgForm) {
4148
theForm.reset();
49+
return false;
4250
}
4351
diagnostic(model) {
4452
console.log(JSON.stringify(model));

0 commit comments

Comments
 (0)