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

        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號
        主站蜘蛛池模板: 午夜精品射精入后重之免费观看| 无码国产精品一区二区免费3p| 在线亚洲精品福利网址导航| 桃花岛精品亚洲国产成人| 亚洲国产精品18久久久久久| 久久人人爽人人精品视频| 亚洲精品在线观看视频| 国产成人精品日本亚洲11| 精品综合久久久久久888蜜芽| 免费人成在线观看欧美精品 | 正在播放酒店精品少妇约 | 国产精品美女久久久网AV| 国产精品一在线观看| 日本内射精品一区二区视频| 亚洲乱码国产乱码精品精| 亚欧洲精品在线视频免费观看| 久久精品国产一区二区三区不卡| 国产精品一区二区av不卡| 国产福利电影一区二区三区,亚洲国模精品一区 | 国产高清日韩精品欧美激情| 九九在线精品视频专区| 国产成人精品男人的天堂538| 91久久精品91久久性色| 97精品国产一区二区三区 | 亚洲AV永久青草无码精品| 亚洲欧美精品综合中文字幕| 亚洲А∨精品天堂在线| 亚洲AV无码乱码精品国产 | 四虎精品影院4hutv四虎| 国产精品欧美一区二区三区不卡 | 精品人无码一区二区三区| 久久国产热精品波多野结衣AV| 久久综合精品国产二区无码| 狼色精品人妻在线视频| 成人区精品一区二区不卡 | 国产一成人精品福利网站| 国产精品国产三级国产专播 | 99久久人妻无码精品系列| 国产精品美女久久久久网| 久久精品视频网| 国产成人久久精品麻豆一区|