angularJS 标签指令

angularJS中除了ng开头的属性指令,还有标签指令、自定义指令等。

标签指令 :对原有的标签进行了重新的构建,并有了新的功能

  • <a>:阻止默认行为,阻止刷新页面

  • <select>
    -ng-options(需要与ng-model结合使用)
    代码示例:

    <script>
    var m = angular.module('myApp',[]);//引入相应模块
    m.controller('Aaa',['$scope',function($scope){

        $scope.colors=[
            {name:"red"},
            {name:"yellow"},
            {name:"blue"}
        ];

    }]);
    </script>

    <div ng-controller="Aaa" ng-app="myApp">
        <a href="">{{myColor.name}}
        <select ng-options="color.name for color in colors" ng-model="myColor"></select>
    </div>

页面结果展示:
这里写图片描述

  • <textarea>
  • <input>
  • <form>
    -novalidate:阻止表单默认行为
    代码示例:
<form novalidate>
    <input type="email">
</form>

表单验证

  • $valid:表单验证成功返回真,验证失败返回假(验证格式不合格时不通过)
  • $invalid:与valid相反,表单验证失败返回真,验证成功返回假
  • $pristine:原始值即进行验证的值是初始值,未进行修改则返回true,修改后则返回false
  • $dirty:与pristine相反
  • $error:无论是验证成功还是验证失败,验证信息均会在此
  • 注意点:
    — name的方式进行查找
    — 要写ng-model

代码示例:

    <script>
    var m = angular.module('myApp',[]);//引入相应模块
    m.controller('Aaa',['$scope',function($scope){

        $scope.colors="hello";

    }]);
    </script>

    <div ng-controller="Aaa" >
        <form novalidate name="myForm">
            <input type="text" name="myText" ng-model="colors">
            <div>{{myForm.myText.$valid}}</div>
            <div>{{myForm.myText.$invalid}}</div>
            <div>{{myForm.myText.$pristine}}</div>
            <div>{{myForm.myText.$dirty}}</div>
        </form>
    </div>

页面结果展示:
这里写图片描述

改变了原始值:
这里写图片描述

  • type:类型验证
    -email
    -number
    -url
  • required:判断是否为空,空为true,非空为false

  • ng-minlength:当字符串的长度大于该值时返回false,字符串长度小于该值时返回true。验证成功false,失败返回true。

  • ng-maxlength

  • ng-pattern:通过正则来限制内容,验证成功返回false,失败返回true

代码示例:

    <script>
    var m = angular.module('myApp',[]);//引入相应模块
    m.controller('Aaa',['$scope',function($scope){

        $scope.colors="hello";

    }]);
    </script>

    <div ng-controller="Aaa" >
        <form novalidate name="myForm">
            <input type="text" name="myText" ng-model="colors" required ng-minlength="4" ng-pattern="/^[a-zA-Z]+$/">
            <div>{{myForm.myText.$valid}}</div>
            <div>{{myForm.myText.$invalid}}</div>
            <div>{{myForm.myText.$pristine}}</div>
            <div>{{myForm.myText.$dirty}}</div>
            <div>{{myForm.myText.$error}}</div>
        </form>
    </div>

页面结果展示:

这里写图片描述

通过表单验证设置CSS样式:
.class

  • .ng-valid{}:验证成功显示该样式
  • .ng-invalid{}:验证失败显示该样式
  • .ng-pristine{}:保留原始值显示该样式
  • .ng-dirty{}:修改元素值显示该样式

代码示例:

    <style type="text/css">
    input.ng-valid {border:1px red solid;}
    input.ng-invalid {border:1px green solid;}
    </style>

页面结果展示:

这里写图片描述


表单验证例子:

代码示例:

<script src="angular.min.js"></script>
<script>

var m1 = angular.module('myApp',[]);
m1.controller('Aaa',['$scope',function($scope){

    $scope.regText = {
        regVal : 'default',
        regList : [
            { name : 'default' , tips : '请输入用户名'},
            { name : 'required' , tips : '用户名不能为空'},
            { name : 'pattern' , tips : '用户名必须是字母'},
            { name : 'pass' , tips : '√'}
        ]
    };

    $scope.regPassword = {
        regVal : 'default',
        regList : [
            { name : 'default' , tips : '请输入密码'},
            { name : 'required' , tips : '密码不能为空'},
            { name : 'minlength' , tips : '密码至少6位'},
            { name : 'pass' , tips : '√'}
        ]
    };

    $scope.change = function( reg , err ){
        for(var attr in err){
            if( err[attr] == true ){
                $scope[reg].regVal = attr;
                return;
            }
        }
        $scope[reg].regVal = 'pass';
    };

}]);



<div ng-controller="Aaa">
    <form novalidate name="nForm">
        <div>
            <label>用户名:</label>
            <input type="text" name="nText" ng-model="regText.name" required ng-pattern="/^[a-zA-Z]+$/" ng-blur="change('regText',nForm.nText.$error)">
            <span ng-repeat=" re in regText.regList | filter : regText.regVal ">{{ re.tips }}</span>
        </div>
        <div>
            <label>密码:</label>
            <input type="password" name="nPassword" ng-model="regPassword.name" required ng-minlength="6" ng-blur="change('regPassword',nForm.nPassword.$error)">
            <span ng-repeat=" re in regPassword.regList | filter : regPassword.regVal ">{{ re.tips }}</span>
        </div>
    </form>
</div>

页面结果展示:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值