亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

AngularJs實現ng1.3+表單驗證

2019-11-20 11:02:33
字體:
來源:轉載
供稿:網友

前一篇文章詳解AngularJS實現表單驗證說過,ng1.3+以后對于表單驗證有了優化,它不再需要一個詳細的表達式狀態創建元素顯示或隱藏。

例如:我們在ng1.3之前的版本都需要如下寫法:

復制代碼 代碼如下:
<div class="error" ng-show="signup_form.name.$dirty && signup_form.name. $invalid && signup_form.submitted">

ng1.3之后新增了一個ngMessages指令,他被打包成一個模塊發布,因此我們使用的時候只需要將這個依賴模塊引入即可

復制代碼 代碼如下:
angular.module('myApp', ['ngMessages']);

怎么用?

現在我們學習一下,它的用法,Code如下:

<!DOCTYPE html><html ng-app="myTest">  <head>    <meta name="viewport" content="width=device-width" />    <title>Index</title>    <link href="~/Content/css/bootstrap.min.css" rel="stylesheet" />    <script src="~/Javascript/angular.js"></script>    <script src="~/Javascript/angular-messages.js"></script>    <style type="text/css">      body {        padding-top: 30px;      }    </style>  </head>  <body>    <div class="col-md-6">      <form role="form" name="myForm" class="form-horizontal" novalidate>        <div class="form-group">          <div class="col-md-2">            用戶名          </div>          <div class="col-md-10">            <input type="text" placeholder="ng-Messages測試" name="name" ng-model="username.name"                ng-minlength=3 ng-maxlength=20 required />            <hr/>            $error:{{myForm.name.$error}}            <hr/>            <div ng-messages="myForm.name.$error">              <div ng-message="required">必填項</div>              <div ng-message="minlength">字符太短小于3</div>              <div ng-message="maxlength">字符太長大于20</div>            </div>           </div>        </div>      </form>    </div>  </body></html><script type="text/javascript">   angular.module("myTest", ['ngMessages']);</script>

效果如下:

可以看出,其實ng是通過$error來監視模型的變化,因為$error中包含了錯誤的詳細信息,同時,如果我們的應用場景中如果同時,有好幾處錯誤,那么,上面代碼按照ng-message的順序只會顯示一條錯誤信息,如果我們需要全部顯示出來只需要添加 ng-messages-multiple

<input type="text" placeholder="測試" name="name" ng-model="username.name" ng-minlength=3 ng-maxlength=20 required /><div ng-messages="myForm.name.$error" ng-messages-multiple><div ng-message="required">必填項</div><div ng-message="email">郵件格式不對</div><div ng-message="minlength">字符太短小于3</div>  <div ng-message="maxlength">字符太長大于20</div></div> 

效果如下:

怎么復用?

我們的驗證信息在一個項目中大多是通用性很高的(對于樣式,描述等都有高度的統一性),因此我們這里也會考慮到復用,ng中同樣提供了解決方案

就是將其作為模板,指定請求路徑由ng自動添加。這里再介紹一個指令 ng-messages-include

我們將上面的驗證信息保存到一個獨立的html靜態頁面中,然后使用ng-messages-include指定請求路徑即可。

Code:

 <div ng-messages="myForm.name.$error" ng-messages-multiple    ng-messages-include ="@Url.Content("~/Content/template/error.html")">  </div> 

error.html

<div ng-message="required">必填項</div><div ng-message="email">郵件格式不對</div><div ng-message="minlength">字符太短小于3</div><div ng-message="maxlength">字符太長大于20</div>

效果如下:

當然,模板可能在特殊的時期某些字段錯誤提示不能滿足你的要求,你可以添加自定義的提示如下:

<div class="error" ng-messages="signup_form.name.$error" ng-messages-include="templates/errors.html"> <!--   按ng-message的順序依次覆蓋--> </div> 

自定義驗證(指令)涉及到的細節知識點很多,如果簡單地為了用而用,可能寫得出功能,但是代碼丑陋,太菜了,還需要花個把月方能弄懂點皮毛,這部分暫告一段落,等徹底明白了,在大家分享,大家亦可以結合《理解AngularJs指令》進行學習。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩经典中文字幕在线观看| 亚洲欧美国产精品久久久久久久| 国产在线精品成人一区二区三区| 一本色道久久综合狠狠躁篇怎么玩| www.欧美三级电影.com| 色老头一区二区三区在线观看| 91夜夜揉人人捏人人添红杏| 国产日产欧美精品| 成人97在线观看视频| 91在线观看欧美日韩| 国产日本欧美一区二区三区在线| 色妞色视频一区二区三区四区| 九九精品在线观看| 2019亚洲日韩新视频| 日韩黄色高清视频| 国产精品成人国产乱一区| 久久精品国产免费观看| 日韩av中文在线| 日韩高清av一区二区三区| 国产色婷婷国产综合在线理论片a| 韩曰欧美视频免费观看| 精品一区二区三区三区| 欧美日韩激情小视频| 91精品国产综合久久久久久久久| 国产精品久久久91| 日本一区二区在线免费播放| 亚洲电影中文字幕| 久久久久久亚洲精品中文字幕| 日本三级韩国三级久久| 亚洲视频第一页| 国产精品福利在线观看| 国产成人精品一区| 久久人人爽人人爽人人片av高请| 欧美日韩国产第一页| 亚洲综合在线小说| 欧美性xxxxx极品| 成人乱人伦精品视频在线观看| 亚洲欧美一区二区激情| 中文字幕欧美国内| 久久视频在线看| 夜色77av精品影院| 亚洲欧美日韩精品久久奇米色影视| 情事1991在线| 亚洲女人天堂色在线7777| 日韩av在线播放资源| 国产乱人伦真实精品视频| 欧美巨乳美女视频| 在线视频欧美日韩| 中文字幕av日韩| 亚洲人成电影网站色xx| 亚洲资源在线看| 亚洲天堂男人天堂女人天堂| 亚洲综合日韩中文字幕v在线| 91大神在线播放精品| 久久精品免费电影| 日韩视频在线一区| 精品少妇v888av| 久久亚洲春色中文字幕| 国产精品福利在线| 欧美日韩国产页| 欧美激情综合色| 琪琪亚洲精品午夜在线| 国产精品黄页免费高清在线观看| 国产精品极品美女粉嫩高清在线| 久久久久成人精品| 欧美韩国理论所午夜片917电影| 国产原创欧美精品| 亚洲精品videossex少妇| 国产精品国产三级国产aⅴ浪潮| 国产成人精品999| 搡老女人一区二区三区视频tv| 91在线视频九色| 91在线观看免费观看| 国产香蕉精品视频一区二区三区| 亚洲一区二区三区乱码aⅴ| 亚洲人成网站777色婷婷| 欧美人在线视频| 搡老女人一区二区三区视频tv| 精品久久久精品| 日韩大片在线观看视频| 欧美激情喷水视频| 亚洲综合成人婷婷小说| 成人有码视频在线播放| 精品福利一区二区| 最新中文字幕亚洲| 性色av一区二区三区红粉影视| 日韩性xxxx爱| 国产一区二区丝袜高跟鞋图片| 91精品久久久久久久| 日韩av网址在线观看| 久久艹在线视频| 成人高h视频在线| 日韩一二三在线视频播| 国产日韩在线亚洲字幕中文| 韩国精品美女www爽爽爽视频| 欧美日韩中文字幕日韩欧美| 欧美寡妇偷汉性猛交| 亚洲视频欧美视频| 亚洲第一男人天堂| 亚洲黄色在线看| 日韩av不卡电影| 亚洲国模精品一区| 亚洲九九九在线观看| 久久艳片www.17c.com| 国产一区二区三区在线视频| 中文字幕亚洲无线码在线一区| 国产精品久久婷婷六月丁香| 亚洲欧美三级伦理| 中文字幕日韩精品在线| www.日本久久久久com.| 欧美一级高清免费播放| 91tv亚洲精品香蕉国产一区7ujn| 91po在线观看91精品国产性色| 久久91亚洲人成电影网站| 亚洲欧美中文日韩在线v日本| 国产极品精品在线观看| 亚洲第一在线视频| 亚洲美女动态图120秒| 日韩大片在线观看视频| 亚洲综合自拍一区| 欧美性生交大片免网| 亚洲美女精品久久| 亚洲一区第一页| 国产成人福利视频| 中文字幕免费精品一区| 成人h片在线播放免费网站| 国产精品国语对白| 欧美激情区在线播放| 日本a级片电影一区二区| 欧美日韩性视频在线| 92看片淫黄大片欧美看国产片| 成人免费黄色网| 亚洲欧美在线第一页| 久久91亚洲精品中文字幕奶水| 亚洲国产福利在线| 日韩av在线网址| 热99久久精品| 在线观看久久av| 中文字幕亚洲二区| 欧美一级片久久久久久久| 欧洲亚洲女同hd| 久久全球大尺度高清视频| 国产精品亚洲欧美导航| 精品电影在线观看| 欧美视频在线观看免费| 亚洲伊人第一页| 久久精品国产69国产精品亚洲| 亚洲黄页视频免费观看| 国产成人高清激情视频在线观看| 色综合久久88色综合天天看泰| 亚洲欧洲激情在线| 最新国产精品亚洲| 国产精品久久久久免费a∨大胸| 亚洲最大的av网站| 久久99久久久久久久噜噜| www.亚洲男人天堂| 亚洲春色另类小说| 国产精品久久网| 久久99国产精品自在自在app| 97人洗澡人人免费公开视频碰碰碰| 亚洲欧美资源在线| 一夜七次郎国产精品亚洲| 日韩视频免费看| 久久综合久中文字幕青草|