国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJS 過濾與排序詳解及實例代碼

2019-11-20 09:00:10
字體:
來源:轉載
供稿:網友

前面了解了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實現數據的綁定即可:

      Search:<input ng-model="query">      Sort by:<select ng-model="order">        <option value="name">name</option>        <option value="age">age</option>      </select>

  AngularJS是一門基于DOM的框架語言,因此不需要實現任何的監聽器以及事件觸發器,當query所在的輸入框發生任何改變時,就會觸發輸入框與下面的表達式展現的雙向刷新!

  相比于其他的一些框架,是基于字符串通過DOM節點innerHTML添加到DOM中,AngularJS的實現方式加快了模型與視圖的展現。并且減少了大量不必要的監聽器啊觸發器啊之類的代碼的編寫,真正實現了類似spring的效果~

  數據的展現,可以通過ng-repeat實現。當網頁解析到ng-repeat的時候,會為每一個數組中的元素都克隆一份標簽,進行編譯解析?!  ?/p>

   <ul class="persons">        <li ng-repeat="person in persons | filter:query | orderBy:order">          {{person.name}}                    {{person.age}}        </li>      </ul>

  剩下的工作就是需要在script中進行perons數組的初始化:   

  <div ng-controller="ctl">          ...    </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>  

  代碼以及結果

  最后貼上全部的代碼:

<!doctype html><html ng-app>  <head>     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />     <script src="http://apps.bdimg.com/libs/angular.js/1.2.16/angular.min.js"></script>  </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>

  使用結果:

  在默認情況下,使用age進行排序:

  通過選擇則可以使用name排序

  再輸入字符的時候,會自動過查詢過濾掉一些選項

以上就是對AngularJS 過濾與排序的資料整理,后續繼續補充相關資料,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 礼泉县| 林州市| 佛坪县| 隆尧县| 商城县| 和硕县| 瓦房店市| 高唐县| 博客| 西乌珠穆沁旗| 清镇市| 荣昌县| 沾化县| 东至县| 通辽市| 同德县| 韩城市| 新龙县| 东源县| 金华市| 凌云县| 徐闻县| 栾城县| 隆回县| 布尔津县| 新丰县| 孙吴县| 子洲县| 澄江县| 同德县| 那曲县| 罗平县| 长寿区| 五原县| 大理市| 宜良县| 海兴县| 安达市| 峨边| 密云县| 扶沟县|