<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        怎樣使用Angular模版驅(qū)動表單

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 19:47:31
        文檔

        怎樣使用Angular模版驅(qū)動表單

        怎樣使用Angular模版驅(qū)動表單:這次給大家?guī)碓鯓邮褂肁ngular模版驅(qū)動表單,使用Angular模版驅(qū)動表單的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。獲取用戶輸入<p class="container-fluid login-page"> <h1>Angular表單</h
        推薦度:
        導(dǎo)讀怎樣使用Angular模版驅(qū)動表單:這次給大家?guī)碓鯓邮褂肁ngular模版驅(qū)動表單,使用Angular模版驅(qū)動表單的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。獲取用戶輸入<p class="container-fluid login-page"> <h1>Angular表單</h
        這次給大家?guī)碓鯓邮褂肁ngular模版驅(qū)動表單,使用Angular模版驅(qū)動表單的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。

        獲取用戶輸入

        <p class="container-fluid login-page">
         <h1>Angular表單</h1>
         <form class="login-area">
         <p class="form-group">
         <input class="form-control" type="text" name="name" id="login-name" placeholder="請輸入登錄帳號">
         </p>
         <p class="form-group">
         <input class="form-control"type="password" name="pwd" id="login-pwd" placeholder="請輸入登錄密碼">
         </p>
         <p class="form-group">
         <button type="submit" class="btn btn-block btn-success">登錄</button>
         </p>
         </form>
        </p>

        假如有以上簡單表單,先不論優(yōu)劣,有哪些方式可以獲取到表單數(shù)據(jù)呢? 先看兩種簡單粗暴的

        1)事件$event的方式

        在監(jiān)聽事件的時候,將整個事件載荷 $event 傳遞到事件處理函數(shù),它會攜帶觸發(fā)元素的各種信息。這里監(jiān)聽form元素的submit事件,將整個form的信息傳給處理函數(shù),并打印出來

        <form class="login-area" (submit)="testInput($event)">
        testInput ( _input: any) {
         console.dir(_input);
        }

        觸發(fā)submit后,查看結(jié)果。非常眼熟,就是傳統(tǒng)方式中的event嘛,后面就不用多說了,target即為form元素,再定位到input子元素,分別獲取value即可。

        為了獲取input的Value,我們傳遞了非常多的無用信息,處理函數(shù)根本就不關(guān)心元素的位置,屬性等等,它只需要value值。所以這種方式不可取

        2) 模版引用變量

        Angular中可以用 模版引用變量(#var)來引用DOM元素/Angular組件/指令。通常模版引用變量就是代表聲明的那個元素,當(dāng)然也可以修改指向,可以代表Angular指令(比如后續(xù)用到的ngForm指令和ngModel指令)。

        // 模版引用變量代表Form元素
        <form class="login-area" #test (submit)="testInput(test)">
        // 模版引用變量代表ngForm指令
        <form class="login-area" #test="ngForm"(submit)="testInput(test)">

        從下圖可以看到不同,第一個和$event.target一樣,是DOM元素;第二個是ngForm指令,可以跟蹤每個控件的值和狀態(tài)(是否輸入過?是否校驗通過?等等),后續(xù)會詳細(xì)說

        所以當(dāng)我們直接用模版引用變量引用input元素時,就可以直接在模版中傳遞input元素的value,而不需要傳遞整個元素信息。這種方式也不好,必須要通過事件觸發(fā)才可以傳遞

         <form class="login-area" (submit)="testInput(test.value)">
         <p class="form-group">
         <input class="form-control" #test type="text" name="name" id="login-name" placeholder="請輸入登錄帳號">
         </p>

        注意:模版引用變量的作用域是整個模版,所以在同一個模版中,不能有同名的模版引用變量

        這兩種獲取表單數(shù)據(jù)的方式只是了解下,因為Angular提供了兩種更好的構(gòu)建表單的方式---模版驅(qū)動表單和模型驅(qū)動表單

        模版驅(qū)動表單

        顧名思義,是使用 HTML模版 + 表單專業(yè)指令 來構(gòu)建表單。使用模版驅(qū)動表單,記得要先在應(yīng)用模塊中import FormsModule。說明以下幾點:

        1、模版驅(qū)動表單使用 [(ngModel)] 語法進行雙向數(shù)據(jù)綁定,非常簡單就可以把表單數(shù)據(jù)綁定到模型中。注意在表單中使用[ngModel]時,必須要定義name屬性,因為Angular在處理表單時,會創(chuàng)建一些FormControl,用來跟蹤單個表單控件的值和狀態(tài),而表單控件name屬性就是鍵值,所以必須要指定name屬性。(這應(yīng)該算是指出了獲取表單數(shù)據(jù)的兩種科學(xué)的方式:[ngModel]語法綁定 和 通過formControl的Api獲取)

        2、使用 ngForm指令,來監(jiān)聽整個表單的有效性(valid屬性)。Angular會自動為form表單自動創(chuàng)建并添加ngForm指令,直接使用即可

        3、使用ngModel指令,來監(jiān)聽單個表單控件的狀態(tài),還會使用特定的Angular css來更新控件樣式 ,我們可以通過這些class來控制不同狀態(tài)時,表單控件的展示 

        4、表單驗證可以使用 HTML原生的表單驗證屬性(required , pattern , max , min 等等) ,驗證出錯時,3中提到的errors屬性就會有對應(yīng)的錯誤項;

        還可以自定義驗證器,因為模版驅(qū)動表單不直接訪問FormControl實例,所以需要把自定義的驗證器用指令包裝。

        通過以下栗子來展示模版驅(qū)動表單簡單使用

        <!-- 模版引用變量指向ngForm指令 -->
         <form class="login-area" #testform="ngForm" (submit)="testInput()">
         <p class="form-group">
         <!-- ngModel綁定數(shù)據(jù) -->
         <!-- required 和 pattern 指定校驗規(guī)則 -->
         <!-- 模版引用變量指向ngModel指令 -->
         <input class="form-control" type="text" name="name" id="login-name" placeholder="請輸入登錄帳號"
         [(ngModel)] = "user.name" 
         required
         pattern="[0-9A-z]+"
         #nameinput = "ngModel"
         >
         </p>
         <!-- 通過表單控件的狀態(tài)控制是否展示錯誤說明及展示何種錯誤說明 -->
         <p class="form-group" *ngIf="nameinput.touched&&nameinput.invalid">
         <span class="error-info" *ngIf="nameinput.errors?.required">用戶名不能為空!</span>
         <span class="error-info" *ngIf="nameinput.errors?.pattern">用戶名只能包含英文或數(shù)字!</span>
         </p>
         <p class="form-group">
         <input class="form-control" type="password" name="pwd" id="login-pwd" placeholder="請輸入登錄密碼"
         [(ngModel)] = "user.pwd"
         required
         #pwdinput = "ngModel">
         </p>
         <p class="form-group" *ngIf="pwdinput.touched&&pwdinput.invalid">
         <span class="error-info" *ngIf="pwdinput.errors?.required">密碼不能為空!</span>
         </p>
         <p class="form-group">
         <!-- 通過表單的狀態(tài)控制按鈕是否可用 -->
         <button type="submit" class="btn btn-block btn-success" [disabled]="testform.invalid">登錄</button>
         </p>
         </form>

        通過Angular css 自動添加的class來控制表單樣式

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

        查看下效果,表單校驗、樣式反饋、按鈕狀態(tài)管理、數(shù)據(jù)獲取都很方便。

        相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關(guān)注Gxl網(wǎng)其它相關(guān)文章!

        推薦閱讀:

        如何使用vue注冊組件

        怎樣使用Vue三層嵌套路由

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        怎樣使用Angular模版驅(qū)動表單

        怎樣使用Angular模版驅(qū)動表單:這次給大家?guī)碓鯓邮褂肁ngular模版驅(qū)動表單,使用Angular模版驅(qū)動表單的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。獲取用戶輸入<p class="container-fluid login-page"> <h1>Angular表單</h
        推薦度:
        標(biāo)簽: 如何使用 使用 表單
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲人色婷婷成人网站在线观看| a毛片免费在线观看| 13一14周岁毛片免费| 亚洲国产精品久久久天堂| 色www永久免费| 亚洲AV成人无码久久精品老人| 在线亚洲人成电影网站色www| 免费激情网站国产高清第一页| 亚洲AⅤ无码一区二区三区在线| 亚洲精品无码mv在线观看网站| 亚洲a级片在线观看| 香蕉国产在线观看免费| 67194成手机免费观看| 亚洲国产精品美女| 成人午夜18免费看| 黄页网站在线免费观看| 在线观看免费人成视频| 亚洲欧洲av综合色无码| 亚洲成A∨人片天堂网无码| 亚洲福利一区二区精品秒拍| 亚洲日本在线免费观看| 亚洲色偷偷偷综合网| 污污网站18禁在线永久免费观看| 亚洲视频国产精品| 免费视频淫片aa毛片| 亚洲的天堂av无码| 免费观看a级毛片| 抽搐一进一出gif免费视频| 国产91在线免费| 在线观看片免费人成视频播放| 亚洲视频国产视频| 国产性生交xxxxx免费| 亚洲一区在线免费观看| 日本免费一区尤物| 中文字幕在线视频免费| 久久久久精品国产亚洲AV无码| 亚洲高清偷拍一区二区三区| 免费无码一区二区三区| 国产精品日本亚洲777| 久久99国产亚洲精品观看| 午夜爱爱免费视频|