angular 基于ng-messages的表单验证实例


Posted in Javascript onMay 04, 2017

最近在学习angular,那么今天也算个学习笔记吧!

html

<div class="form-group" ng-class="{'has-error': myForm.myName.$touched && myForm.myName.$invalid}">
  <label class="col-xs-2 control-label">name</label>
  <div class="col-xs-6">
    <input type="text" class="form-control" name="myName" ng-model="formData.username"
        placeholder="2-10个中英文字符,aaa会重名,必填"
        name-check minlength="2" maxlength="10" required>
  </div>
  <div class="col-xs-4 form-control-static text-danger" ng-messages="myForm.myName.$error"
           ng-messages-include="demos/form/error.html" ng-show="myForm.myName.$touched">
  </div>
</div>

ng-messages="myForm.myName.$error" 给出错误类型(required, char, exist, minlength)

error.html

<span ng-message="required">必填</span>
<span ng-message="char">非法字符</span>
<span ng-message="exist">名称已存在</span>
<span ng-message="minlength">太短了</span>

directive name-check 利用ngModel 的$validators,& $asyncValidators 添加自定义验证

app.directive('nameCheck', nameCheck);

nameCheck.$inject = ['HttpService', '$q'];

function nameCheck(HttpService, $q){

  var NAME_REG = /^[a-zA-Z\u4e00-\u9fa5]+$/;

  return {
    restrict: 'A',
    require: 'ngModel',
    link:function($scope,element,attrs,ctrl){

      ctrl.$validators.char = function(modelValue, viewValue) {
        var value = modelValue || viewValue;
        if(!NAME_REG.test(value)){
          return false;
        }
        return true;
      };
      ctrl.$asyncValidators.exist = function(modelValue, viewValue){
        var value = modelValue || viewValue;
        var deferred = $q.defer();
        HttpService.get('api/users/' + value).then(function(res) {
          if(res.isExist){
            deferred.reject(false);

          }
          deferred.resolve(true);
        })

        return deferred.promise;
      }
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js添加table的行和列 具体实现方法
Jul 22 Javascript
javascript常用函数归纳整理
Oct 31 Javascript
JavaScript动态加载样式表的方法
Mar 21 Javascript
javascript实现全局匹配并替换的方法
Apr 27 Javascript
javascript中mouseover、mouseout使用详解
Jul 19 Javascript
使用JavaScript实现弹出层效果的简单实例
May 31 Javascript
在线引用最新jquery文件的实现方法
Aug 26 Javascript
Bootstrap CSS布局之列表
Dec 15 Javascript
bootstrap栅格系统示例代码分享
May 22 Javascript
jQuery中each方法的使用详解
Mar 18 jQuery
手把手带你入门微信小程序新框架Kbone的使用
Feb 25 Javascript
小程序使用分包的示例代码
Mar 23 Javascript
JS实现标签页切换效果
May 04 #Javascript
ES6下React组件的写法示例代码
May 04 #Javascript
JS触摸事件、手势事件详解
May 04 #Javascript
详解Angular 4.x Injector
May 04 #Javascript
详解Vue中使用v-for语句抛出错误的解决方案
May 04 #Javascript
详解Node.js串行化流程控制
May 04 #Javascript
纯原生js实现贪吃蛇游戏
Apr 16 #Javascript
You might like
php 日期时间处理函数小结
2009/12/18 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
js form action动态修改方法
2008/11/04 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
详解Python中的Lock和Rlock
2021/01/26 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
个人简历中的自我评价怎么写
2014/01/26 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
安全生产月演讲稿
2014/05/09 职场文书
求职信格式范文
2015/03/19 职场文书
南京大屠杀观后感
2015/06/02 职场文书
运动会班级前导词
2015/07/20 职场文书
如何撰写创业策划书
2019/06/27 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
基于Python编写一个监控CPU的应用系统
2022/06/25 Python