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>

頁面結果展示:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章