angularjs學習第三天筆記(過濾器第二篇---filter過濾器及其自定義過濾器)

来源:https://www.cnblogs.com/xiaoXuZhi/archive/2018/08/22/angularjs_filter2.html
-Advertisement-
Play Games

angularjs學習,本次主要學習練習其filter過濾器、limitTo過濾器、orderyBy過濾器,及其自定義過濾器的 ...


您好,我是一名後端開發工程師,由於工作需要,現在系統的從0開始學習前端js框架之angular,每天把學習的一些心得分享出來,如果有什麼說的不對的地方,請多多指正,多多包涵我這個前端菜鳥,歡迎大家的點評與賜教。謝謝!

  第三天,過濾器第二篇---filter過濾器及其自定義過濾器

一、filter過濾器

  filter過濾器我的理解就是一個篩選過濾器,主要是對集合數據進行篩選,其篩選條件支持字元串、對象、函數

  字元串:篩選邏輯就是篩選出屬性值包含該字元串的對象集合

      同時還可以接受一個bool變數的參數(如果為true按照等於篩選)

      格式為:{{被篩選的集合對象|filter:'要篩選的字元串':是否嚴格等於篩選}}

  對象:篩選邏輯就是篩選出集合中包含該鍵值對對應的值的對象集合

      格式為:{{被篩選的集合對象|filter:‘篩選條件對象’}}

  函數:可以根據需要在函數裡面編寫篩選邏輯(有點自定義過濾器的效果)

      格式為:{{被篩選的集合對象|filter:‘篩選自定義函數名稱’}}

  關於filter篩選的小練習

  

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body ng-app="myApp" ng-controller="myContro">
    <div>
        <h1>filter 過濾器練習</h1>
        <div>屬性值中包含hong的數據集合:{{dateList|filter:"hong"}}</div>
        <div>age中包含hong的數據集合:{{dateList|filter:'xuhongyuan':true }}</div>
        <div>age中包含hong的數據集合:{{dateList|filter:'xuhongyuan':false }}</div>
        <div>age中包含hong的數據集合:{{dateList|filter:{name:'xuhongyuan'} }}</div>
        <div>age中包含hong的數據集合:{{dateList|filter:fun }}</div>
    </div>
</body>
</html>
<script src="Scripts/angular.js"></script>
<script type="text/javascript">
    var app = angular.module("myApp", []);
    app.controller("myContro", function ($scope) {
        $scope.dateList = [
            { name: "xurong", age: 35 },
            { name: "xuyanzi", age: 32 },
            { name: "xuhongyuan", age: 30 },
            { name: "xuhongyuanTest", age: 30 },
            { name: "Xuhongyuan", age: 30 },
            { name: "xuhongyong", age: 28 }
        ];
       
        $scope.fun = function (e) {
            return e.age > num;
        }
    });

</script>


二、json 過濾器

  json過濾器可以將一個JSON或JavaScript對象轉換成字json符串

三、limitTo 過濾器

  limitTo過濾器實際上就是對字元串進行截取

    如果參數為正,那麼從字元串前面開始截取,如果參數為負,那麼從字元串後面開始截取

    格式:{{被截取的字元串|limitTo:截取長度}}

  limitTo過濾器出了使用於字元串外,數組也是同樣的原理

四、orderBy 過濾器

  orderBy過濾器可以用表達式對指定的數組進行排序。預設升序

  orderBy可以接受兩個參數

    第一個是必需的(排序欄位及其方式,可以接收一個函數)

    第二個是可選的(boolean,是否逆向,如果設置為true,則倒序)

 

  關於json 、limitTo、orderBy過濾器的練習

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body ng-app="myApp" ng-controller="myContro">
    <div>
        
        <h1>json 過濾器練習</h1>
        json過濾器可以將一個JSON或JavaScript對象轉換成字元串。這種轉換對調試非常有幫助:<br />
        {{ dateList | json }}

        <h1>limitTo 過濾器練習</h1>
        limitTo過濾器實際上就是對字元串進行截取,如果參數為正,那麼從字元串前面開始截取,如果參數為負,那麼從字元串後面開始截取<br />
        limitTo過濾器出了使用於字元串外,數組也是同樣的原理<br />
        <div>字元串前面截取保留10位:{{message|limitTo:10}}</div>
        <div>字元串後面截取保留7位:{{message|limitTo:-7}}</div>
        <div>數組前面截取保留2位:{{dateList|limitTo:2}}</div>
        <div>數組後面截取保留2位:{{dateList|limitTo:-2}}</div>

        <h1>orderBy 過濾器練習</h1>
        orderBy過濾器可以用表達式對指定的數組進行排序。預設升序<br />
        orderBy可以接受兩個參數,第一個是必需的(排序欄位及其方式,可以接收一個函數),第二個是可選的(boolean,是否逆向,如果設置為true,則倒序)。<br />
        <div>數組根據年齡升序:{{dateList|orderBy:"age"}}</div>
        <div>數組根據年齡降序:{{dateList|orderBy:"age":true}}</div>
       
    </div>
</body>
</html>
<script src="Scripts/angular.js"></script>
<script type="text/javascript">
    var app = angular.module("myApp", []);
    app.controller("myContro", function ($scope) {
        $scope.dateList = [
            { name: "xurong", age: 35 },
            { name: "xuyanzi", age: 32 },
            { name: "xuhongyuan", age: 30 },
            { name: "xuhongyuanTest", age: 30 },
            { name: "Xuhongyuan", age: 30 },
            { name: "xuhongyong", age: 28 }
        ];
        $scope.message = "大家好好,我是馬良,很高興見到大家";
    });
</script>

 

五、自定義 過濾器

  自定義過濾器可以根據實際業務需要編寫對於的過濾器邏輯

  定義格式為:
    app.filter("自定義過濾器名稱", function () {
      return function (待過濾對象,參數1,參數2....) {
       篩選邏輯。。。。

       return 最終篩選的符合要求的結果
     }

  調用方式:{{待過濾對象|自定義過濾器名稱:參數1:參數2....}}

自定義過濾器練習:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body ng-app="myApp" ng-controller="myContro">
    <div>
        <h1>自定義 過濾器</h1>
        <div>實現第一個字母大小:{{message|lowercase|myFilter}}</div>
        <div>對數據集合按照自定義集合進行篩選:{{dateList|myFilterObj:29}}</div>
    </div>
</body>
</html>
<script src="Scripts/angular.js"></script>
<script type="text/javascript">
    var app = angular.module("myApp", []);
    app.controller("myContro", function ($scope) {
        $scope.dateList = [
            { name: "xurong", age: 35 },
            { name: "xuyanzi", age: 32 },
            { name: "xuhongyuan", age: 30 },
            { name: "xuhongyuanTest", age: 30 },
            { name: "Xuhongyuan", age: 30 },
            { name: "xuhongyong", age: 28 }
        ];
        $scope.message = "hello,my name is XuHongYuan!";
    });

    app.filter("myFilter", function () {
        return function (input) {
            if (input) {
                return input[00].toUpperCase() + input.slice(1);
            }
        }
    });

    app.filter("myFilterObj", function () {
        return function (input,angNum) {
            var outPut = [];
            angular.forEach(input, function (obj) {
                if (obj.age > angNum) {
                    outPut.push(obj);
                }
            })
            return outPut;
        }
    })

</script>

  好了,時間也不早了,明天還要上班,今天就先學到這,明天繼續學習表單驗證,謝謝大家支持與鼓勵。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近花了點心思整理了下我的博客園主題代碼,今天正式和大家分享一下,感興趣的園友可以瞭解一下。 主題介紹 Silence 追求大道至簡的終極真理,旨在打造一個乾凈、專註閱讀的博客主題,沒有二維空間元素、不存在花里胡哨。 簡單概括其幾個主要特點: 專註閱讀、精緻漂亮的 UI; 事無巨細的部署文檔; 相容 ...
  • 我們都知道瀏覽器有同源策略(same-origin policy)的安全限制,即每個站點只允許載入來自和自身同域(origin)的數據,https://a.com 是無法從 https://b.com 載入到資源的。每個站點被嚴格限制在了自已的孤島上,自己就是一個沙盒,這樣很安全,整個網路不會雜亂無... ...
  • 一、函數參數 1.可以使用預設參數 2.用let或const再次聲明參數會報錯,var不會。 3.使用參數預設值時,函數不能有同名參數。 4.參數預設值不是傳值的,而是每次都重新計算預設值表達式的值。也就是說,參數預設值是惰性求值的。 5.通常情況下,定義了預設值的參數,應該是函數的尾參數。 6.指 ...
  • 如何編碼解碼 編碼:var code=encodeURI("原文"); 解碼:var 原問=decodeURI("code"); 用encodeURIComponent代替encodeURI 用decodeURIComponent代替decodeURI eval 專門執行字元串格式的表達式 var ...
  • 滾動條距離(某些瀏覽器下麵做相容)document.documentElement.scrollTop || document.body.scrollTop 事件監聽實現相容:if(elem.addEventListener){ elem.addEventListener("click",fn) } ...
  • 遞歸:遞歸函數是在一個函數通過名字調用自身情況下構成的 /*function jiecheng(n){//n=5 if(n==1){//基點 return 1; }else{ return n*jiecheng(n-1); } }*/ //alert(jiecheng(100));//9.33262 ...
  • CSS權重 CSS權重指的是樣式的優先順序,有兩條或多條樣式作用於一個元素,權重高的那條樣式對元素起作用,權重相同的,後寫的樣式會覆蓋前面寫的樣式。 權重的等級 可以把樣式的應用方式分為幾個等級,按照等級來計算權重 1、!important,加在樣式屬性值後,權重值為 100002、內聯樣式,如:st ...
  • 功能簡介: 不需要藉助百度的語音SDK即可完成,只需要通過前端語言利用頁面獲取用戶語音直接將語音數據發送給後端保存,之後通過條件判斷再將保存好的語言文件地址發送給目標用戶,藉此即可完成用戶之間的單點通信 前端代碼 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...