首頁  >  文章  >  web前端  >  詳解AngularJS中$filter過濾器使用(自訂過濾器)

詳解AngularJS中$filter過濾器使用(自訂過濾器)

高洛峰
高洛峰原創
2017-02-07 13:51:47977瀏覽

1.內建過濾器

* $filter 过滤器,是angularJs中用来处理数据以更好的方式展示给我用户。比如格式化日期,转换大小写等等。
* 过滤器即有内置过滤器也支持自定义过滤器。内置过滤器很多,可以百度。关键是如何使用:
* 1.在HTML中直接使用内置过滤器
* 2.在js代码中使用内置过滤器
* 3.自定义过滤器
*
* (1)常用内置过滤器
*    number 数字过滤器,可以设置保留数字小数点后几位等
*    date  时间格式化过滤器,可自己设置时间格式
*    filter 过滤的数据一般是数组,数组中的数据可以是对象,字符串等
*    orderBy 排序根据数组中某一个元素的属性排序等
*    lowercase 转换小写
*    uppercase 转换大写
*    limitTo  字符串剪切 使用格式{{被剪切的字符串|limitTo:数值}} 数值绝对值代表要切得字符个数,正代表从头开始切,负值相反。
*
* */

2.自訂過濾器

/*
* 定义格式:
* 模块名称.filter(‘过滤器名字',function(){
*    return function(被过滤数据,条件1,条件2.。。。){
*    //过滤操作
*    }
* });
* */

    套用上面的格式定義兩個簡單的自定義過濾器一個帶條件的,一個不帶條件的。

(1)【不含條件】,功能:固定轉換(有時候專案中會遇到角色代號,門市編碼什麼的,但是顯示的時候要顯示對應中文,例如欄位code:101代表老闆

    這時候像這種code值比較多,那就用過濾器比較好。這裡定義一個過濾掉所有年齡為某個值的濾鏡。參數是年齡

myApp.filter("ChangeCode",function () {
  return function (inputData) {
    var changed = "";
    switch (inputData){
      case '101':changed = "老板";break;
      case '102':changed = "经理";break;
      case '103':changed = "员工";break;
    }
    return changed;
  }
});
/*完成,说一下使用场景(就这个过滤器的功能)和方式。
* 场景:服务器返回的数据中有个字段code,直接放标签里<div>{{data.code}}</div>,会显示code值而不是code值对应的职称,这时候就可以用这个专门
*    针对这个转换的自定义过滤器
* 使用方式:
*      (1)HTML中:<div>{{data.code | ChangeCode}}</div>//跟内置过滤器一样的方式
*      (2)js中:变量 = $filter("ChangeCode")(被过滤的code数据)//一样的调用方式
*     
* */

【總結內建過濾器的使用方式】

 (1)在HTML中一般格式為:  {{被過濾的資料 | 過濾器名稱:條件1:條件2.。 。 。 }}    ;過濾條件之間以':'隔開.

 (2)在程式碼中一般格式為:  變數= $filter("過濾器名稱")(被過濾數據,過濾條件1,過濾條件2, 。

      參數1:被過濾的資料

參數2:一般為過濾條件,可以有多個,後面的參數3一直到參數N都是,依需求增加。

以上所述是小編給大家介紹的詳解AngularJS中$filter過濾器使用(自訂過濾器),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對PHP中文網的支持!

更多詳解AngularJS中$filter過濾器使用(自訂過濾器)相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn