全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

最近在学习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;
      }
    }
  }
}

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


# angularjs  # ngmessages  # ng  # messages  # angular  # AngularJS使用ngMessages进行表单验证  # 必填  # 英文  # 自定义  # 也算  # 大家多多  # 太短  # 学习笔记  # placeholder  # control  # model  # username  # text  # type  # formData  # input  # static  # required  # danger  # check 


相关文章: 如何用虚拟主机快速搭建网站?详细步骤解析  Swift中swift中的switch 语句  自助网站制作软件,个人如何自助建网站?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  如何在橙子建站中快速调整背景颜色?  制作农业网站的软件,比较好的农业网站推荐一下?  如何配置WinSCP新建站点的密钥验证步骤?  如何通过商城免费建站系统源码自定义网站主题?  C#如何在一个XML文件中查找并替换文本内容  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  如何用免费手机建站系统零基础打造专业网站?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  建站之星导航配置指南:自助建站与SEO优化全解析  C++中引用和指针有什么区别?(代码说明)  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  如何高效生成建站之星成品网站源码?  如何通过虚拟主机快速搭建个人网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何选择最佳自助建站系统?快速指南解析优劣  如何在景安服务器上快速搭建个人网站?  独立制作一个网站多少钱,建立网站需要花多少钱?  已有域名如何免费搭建网站?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  javascript中对象的定义、使用以及对象和原型链操作小结  TestNG的testng.xml配置文件怎么写  桂林网站制作公司有哪些,桂林马拉松怎么报名?  建站之星多图banner生成与模板自定义指南  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  西安大型网站制作公司,西安招聘网站最好的是哪个?  如何快速生成凡客建站的专业级图册?  建站之星如何一键生成手机站?  贸易公司网站制作流程,出口贸易网站设计怎么做?  教学网站制作软件,学习*后期制作的网站有哪些?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何选择建站程序?包含哪些必备功能与类型?  如何通过VPS建站实现广告与增值服务盈利?  建站与域名管理如何高效结合?  建站主机功能解析:服务器选择与快速搭建指南  Python lxml的etree和ElementTree有什么区别  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  如何通过可视化优化提升建站效果?  简单实现Android文件上传  如何在企业微信快速生成手机电脑官网?  如何通过虚拟主机快速完成网站搭建?  IOS倒计时设置UIButton标题title的抖动问题 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。