日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

angular4更改表单中显示的值_angular4 Form表单相关

發布時間:2023/12/3 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 angular4更改表单中显示的值_angular4 Form表单相关 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ng4中,有兩種方式去聲明一個表單

一:Template-Driven Forms - 模板驅動式表單? ?[引入FormsModule]

1.ngForm賦值[可以方便的獲取表單的值]

name='username'

[(ngModel)]='login.username'

required>

Name is required.

2.ngModel綁定[ngModel會自動關聯表單控件name屬性,并使用該值作為ngForm對象的屬性名]

以下有三種寫法:

3.ngModel賦值[可以操縱表單控件的事件]

name='username'

[(ngModel)]='login.username'

#username='ngModel'(change)='changeName(username.value)'required>

Name is required.

4.驗證規則相關[required/minlength/maxlength等]

The minlength is8.

5.驗證狀態相關[touched/valid/invalid/pristine/dirty/untouched等]

valid:控件有效

invalid:控件無效

pristine:控件值未改變

dirty:控件值已改變

untouched:表單控件未被訪問過

...

[disabled]='f.invalid'

(click)='onSubmit(f)'>

submit

二:Reactive Forms (Model-Driven Forms) - 響應式表單? [引入ReactiveFormsModule]

1.FormGroup(FormControl+FormArray)[表單對象]

FormGroup:包含一組FormControl和FormArray的實例,可用于跟蹤一組實例的值和驗證狀態

FormControl & FormArray:為單個表單控件提供支持的類,用于跟蹤控件的值和驗證狀態 前者是單值類型,后者是多值類型

2.Validators[表單驗證]

//html方面

*ngIf="thatForm.get('name').hasError('required') &&

thatForm.get('name').touched">

Name is required

*ngIf="thatForm.get('name').hasError('minlength') &&

thatForm.get('name').touched">

The minlength is 2.

//xx.component.ts

export class xxComponent implements OnInit{

thatForm: FormGroup;

constructor(){};

ngOnInit() { this.thatForm=new FormGroup({

name:new FormGroup('',[Validators.required,Validators.minLength(2)])

})

}

}

3.FormBuilder[簡化新建FormGroup對象整個過程]

//FormGroup用法

export class xxComponent implements OnInit{

thatForm: FormGroup;

constructor(){};

ngOnInit() {this.thatForm=new FormGroup({ name:new FormGroup('',[Validators.required,Validators.minLength(2)])

})

}

}

//FormBuilder用法

export class xxComponent implements OnInit{

thatForm: FormGroup;

constructor(private formBuilder: FormBuilder){};

ngOnInit() {this.thatForm=this.formBuilder.group({

name:['',[Validator.required,Validators.minLength(2)]]

})

}

}

4.FormValidation[統一管理驗證錯誤]

//html方面

{{formValidation.msgs.name.errors}}

//form-validation.ts

export class xxValidation extends FormValidation{

constructor(){

super()

}

msgs={

name:{

errors:'',

messages:{

required:'please type the name.',

minlength:'please enter 3 charactors atleast.'}

}

}

}

//xx.component.ts

export class xxComponent implements OnInit{

formValidation:xxValidation=newxxValidation();

thatForm:FormGroup;

constructor(private formBuilder: FormBuilder){}

ngOnInit(){ this.thatForm=this.formBuilder.group({

name:['',[Validators.required,Validators.minLength(4)]]

})

}

}

兩種方式的比較:

模板驅動表單(Template-Driven Forms)

1.使用方便

2.適用于簡單的場景

3.通過[(ngModel)]實現數據雙向綁定

4.最小化組件類的代碼

5.不利于單元測試

響應式表單(Reactive Forms)

1.比較靈活

2.適用于復雜的場景

3.簡化了HTML模板的代碼,把驗證邏輯抽離出來了

4.方便跟蹤表單控件值的變化

5.易于單元測試

總結

以上是生活随笔為你收集整理的angular4更改表单中显示的值_angular4 Form表单相关的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。