• AngularJS 过滤与排序详解及实例代码


    这篇文章主要介绍了AngularJS 过滤与排序,实现查询过滤以及排序的功能。

    通过这篇文章可以了解到

      1、 angularjs的过滤器

      2、 ng-repeat的使用方法

      3、 控制器的使用

      4、 数据的绑定

    首先,如果要是先查询过滤,就要使用到AngularJS中的 过滤器filter 了。

      直接在表达式的后面使用管道命令符 | ,按照下面的写法就可以达到一个过滤的效果:

      {{ persons | filter:query }}

      通过使用filter实现过滤操作,query是查询过滤时输入的字符串。

      类似地,使用orderBy就可以实现排序的功能:

      {{ persons | filter:query | orderBy:order }}

    上面的查询以及排序涉及到两个变量,query和order。在这里直接使用ng-model实现数据的绑定即可:

    搜索:<input ng-model="query">
    排序:<select ng-model="order">
        <option value="name">name</option>
        <option value="age">age</option>
      </select>

    数据的展现,可以通过ng-repeat实现。当网页解析到ng-repeat的时候,会为每一个数组中的元素都克隆一份标签,进行编译解析。   

         <ul class="persons">
            <li ng-repeat="person in persons | filter:query | orderBy:order">
              {{person.name}}
              {{person.age}}
            </li>
          </ul>
    这些就是需要在script中进行perons数组的初始化:   
      <script type="text/javascript">
        function ctl($scope){
          $scope.persons = [
            {"name":"xingoo","age":25},
            {"name":"zhangsan","age":18},
            {"name":"lisi","age":20},
            {"name":"wangwu","age":30}
          ];
          $scope.order = "age";
        }
      </script> 
     
    实例:
    <!doctype html>
    <html ng-app>
      <head>
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
      </head>
      <body>
        <div ng-controller="ctl">
          Search:<input ng-model="query">
          Sort by:<select ng-model="order">
            <option value="name">name</option>
            <option value="age">age</option>
          </select>
     
          <ul class="persons">
            <li ng-repeat="person in persons | filter:query | orderBy:order">
              {{person.name}}
               
              {{person.age}}
            </li>
          </ul>
        </div>
        <script type="text/javascript">
          function ctl($scope){
            $scope.persons = [
              {"name":"xingoo","age":25},
              {"name":"zhangsan","age":18},
              {"name":"lisi","age":20},
              {"name":"wangwu","age":30}
            ];
            $scope.order = "age";
          }
        </script>
      </body>
    </html>
  • 相关阅读:
    Redis集群搭建步骤
    JS性能优化
    javaweb中实现在线人数统计
    tomcat在linux中启动慢的解决方案
    Redis高可用架构
    bjpowernode课程体系及题库
    java 相关
    码农翻身全年文章精华
    Spring源码深度解析
    PHPSTROM快捷键备份
  • 原文地址:https://www.cnblogs.com/liangxiaoli/p/7086332.html
Copyright © 2020-2023  润新知