站長資訊網
        最全最豐富的資訊網站

        angular學習之聊聊兩種類型的表單

        本篇文章帶大家了解一下angular中的表單,了解一下兩種類型的表單:模板驅動和模型驅動,希望對大家有所幫助!

        angular學習之聊聊兩種類型的表單

        在 Angular 中,表單有兩種類型,分別為模板驅動模型驅動。【相關教程推薦:《angular教程》】

        一、模板驅動

        1.1 概述

        表單的控制邏輯寫在組件模板中,適合簡單的表單類型。

        1.2 快速上手

        1)、引入依賴模塊 FormsModule

        import { FormsModule } from "@angular/forms"  @NgModule({   imports: [FormsModule], }) export class AppModule {}

        2)、將 DOM 表單轉換為 ngForm

        <form #f="ngForm" (submit)="onSubmit(f)"></form>

        3)、聲明表單字段為 ngModel

        <form #f="ngForm" (submit)="onSubmit(f)">   <input type="text" name="username" ngModel />   <button>提交</button> </form>

        4)、獲取表單字段值

        import { NgForm } from "@angular/forms"  export class AppComponent {   onSubmit(form: NgForm) {     console.log(form.value) // {username: ''}   } }

        5)、表單分組

        <form #f="ngForm" (submit)="onSubmit(f)">   <div ngModelGroup="user">     <input type="text" name="username" ngModel />   </div>   <div ngModelGroup="contact">     <input type="text" name="phone" ngModel />   </div>   <button>提交</button> </form>
        import { NgForm } from "@angular/forms"  export class AppComponent {  onSubmit(form: NgForm) {    console.log(form.value) // {contact: {phone: ''}, user:{username: ''}}  } }

        1.3 表單驗證

        • required 必填字段
        • minlength 字段最小長度
        • maxlength 字段最大長度
        • pattern 驗證正則 例如:pattern=“d” 匹配一個數值
        <form #f="ngForm" (submit)="onSubmit(f)">   <input type="text" name="username" ngModel required pattern="d" />   <button>提交</button> </form>
        export class AppComponent {   onSubmit(form: NgForm) {     // 查看表單整體是否驗證通過     console.log(form.valid)   } }
        <!-- 表單整體未通過驗證時禁用提交表單 --> <button type="submit" [disabled]="f.invalid">提交</button>

        在組件模板中顯示表單項未通過時的錯誤信息。

        <form #f="ngForm" (submit)="onSubmit(f)">   <input #username="ngModel" />   <div *ngIf="username.touched && !username.valid && username.errors">     <div *ngIf="username.errors.required">請填寫用戶名</div>     <div *ngIf="username.errors.pattern">不符合正則規則</div>   </div> </form>

        指定表單項未通過驗證時的樣式。

        input.ng-touched.ng-invalid {   border: 2px solid red; }

        二、模型驅動

        2.1 概述

        表單的控制邏輯寫在組件類中,對驗證邏輯擁有

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品久久久久影院嫩草| 老司机99精品99| 国产成人精品无码播放| 国产亚洲精品a在线观看app| 久久夜色撩人精品国产| 精品国产91久久久久久久| 色欲久久久天天天综合网精品| 久久精品国产只有精品66| 精品成人免费自拍视频| 精品国精品国产自在久国产应用| 日韩欧美国产精品第一页不卡| 91久久精品电影| 国产精品爽黄69天堂a| 精品少妇人妻av无码久久| 最新国产精品拍自在线观看| 人人妻人人澡人人爽人人精品97| 精品精品国产欧美在线小说区| 韩国精品欧美一区二区三区| 精品无码人妻一区二区免费蜜桃| 亚洲精品第一国产综合境外资源| 国产午夜精品免费一区二区三区| 香蕉99久久国产综合精品宅男自 | 亚洲精品无码你懂的网站| 国产精品99爱免费视频| 精品久久久久久久| 99热亚洲色精品国产88| 久久精品aⅴ无码中文字字幕重口| 亚洲精品永久在线观看| 亚洲精品国产精品乱码不卡| 亚洲精品国产V片在线观看 | 中文精品久久久久人妻不卡| 午夜亚洲av永久无码精品| 日本精品一区二区三区在线视频一| 国产线视频精品免费观看视频| 国产成人无码精品一区在线观看| 91久久福利国产成人精品| 国产成人精品福利网站在线观看| 国产叼嘿久久精品久久| 国产精品内射婷婷一级二| 国产香蕉国产精品偷在线观看| 国产精品一区三区|