欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

AngularJs标签指令

程序员文章站 2022-05-10 19:22:00
标签指令 对html原有的标签进行构建而产生新的功能的一种标签。 标签指令多用于在表单验证中。 - a标签指令 会阻止a标签的默认行为–>刷新页面。...

标签指令

对html原有的标签进行构建而产生新的功能的一种标签。

标签指令多用于在表单验证中。

- a标签指令

会阻止a标签的默认行为–>刷新页面。

    <pre>
        <p ng-controller="aaa">
            <!--写在ng-controller作用域范围内的a标签,就是a标签指令-->
            <a href="">aaa</a>
        </p>
        <a href="">aaa</a>
    </pre>

select

ng-options是用来配合select标签指令来生成select的下拉子项。

<pre>
    <!doctype html>
    <html lang="en" ng-app="app">
    <head>
        <meta charset="utf-8">
        <title>title</title>

        <script src="js/angular.min.js"></script>
        <script type="text/javascript">
            var app=angular.module("app",[]);

            app.controller("aaa",["$scope",function($scope){
                $scope.colors=[
                    {name:'red'},
                    {name:'yellow'},
                    {name:'blue'}
                ];
            }]);

        </script>
    </head>
    <body>
       <p ng-controller="aaa">
          <!-- ng-options必须和ng-model一起用,否则没效果;对select下拉框的子项的选择,即是对ng-model绑定的值的改变-->
           <select ng-options="color.name for color in colors" ng-model="mycolor">

           </select>
           <a href="">{{mycolor.name}}</a>
       </p>
    </body>
    </html>
</pre>

textarea

input

from

novalidate:阻止表单的一些默认的行为。

<pre>
    <p ng-controller="aaa">
           <form novalidate>
              <!--html5中的email类型会给出邮箱格式提示,
              若想不要这个表单默认行为,可在form标签上加上novalidate属性-->
              <input type="email">
          </form>
       </p>
</pre>

表单验证

相关验证值:

- valid有效的。如果表单验证通过时,valid这个值就为true。

- invalid无效的。与valid意思相反,表单验证通过时,invalid这个值为false。−pristine

原始值。如果需要验证的值没有被修改,是原始值,pristine这个值为true;如果修改了,pristine这个值为false。

- dirty脏值。与pristine的意思相反。

- $error

表单验证失败时产生的验证信息都在#error里面。

注意:表单验证中的查找是通过name的方式进行查找。

<pre>
    <!doctype html>
    <html lang="en" ng-app="app">
    <head>
        <meta charset="utf-8">
        <title>title</title>

        <script src="js/angular.min.js"></script>
        <script type="text/javascript">
            var app=angular.module("app",[]);

            app.controller("aaa",["$scope",function($scope){
                $scope.t1="hello";
            }]);
        </script>
    </head>
    <body>
       <p ng-controller="aaa">
           <form novalidate name="myform">
               <input type="text" name="mytext" ng-model="t1">
               <p>{{myform.mytext.$valid}}</p> <!--輸出true-->
               <p>{{myform.mytext.$invalid}}</p> <!--輸出false-->
               <p>{{myform.mytext.$pristine}}</p> <!--輸出true-->
               <p>{{myform.mytext.$dirty}}</p>  <!--輸出false-->
               <p>{{myform.mytext.$error}}</p> <!--輸出{}-->
           </form>
       </p>
    </body>
    </html>
</pre>

(1)当用户修改了输入框的值,myform.mytext.pristine的值为false,myform.mytext.dirty的值为true。

(2)如果把输入框的type改成“email”,myform.mytext.valid的值为false,myform.mytext.invalid的值为true,表单验证没通过;

因为t1=”hello”不符合邮箱格式规则。此时的myform.mytext.$error的值变成:{“email”:true},代表email验证未通过。

另外,type为nunber及url时,也能进行验证。