最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解AngularJS 過濾器的使用

 更新時間:2018年06月02日 10:56:04   作者:張喜碩  
AngularJS 過濾器可用于轉(zhuǎn)換數(shù)據(jù),這篇文章主要介紹了詳解AngularJS 過濾器的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

考評員綜合查詢,查詢條件有:區(qū)域、所在單位、從事專業(yè)、資格證名稱、有效期至。

如果我們的所有數(shù)據(jù)查詢都放在后臺的話。依據(jù)拼接的查詢條件,選擇區(qū)域、所在單位、從事專業(yè)查詢的是人員表,而選擇資格證名稱、有效期至查詢的是人員資質(zhì)表。

查詢都放到后臺,這種以我們固有的思路去設(shè)計(jì)是可以實(shí)現(xiàn)的。

那就寫兩個接口,一個根據(jù)區(qū)域、所在單位、從事專業(yè)查詢?nèi)藛T表,一個根據(jù)資格證名稱、有效期至、區(qū)域、所在單位、從事專業(yè)查詢?nèi)藛T資質(zhì)表。不過是拼接謂語時多join幾下罷了。

然后前臺監(jiān)聽用戶選中的查詢條件,根據(jù)不同的查詢條件去請求相應(yīng)的接口。

雖然這樣可以實(shí)現(xiàn),但是此處的考評員的數(shù)量不會很多,我們大可以根據(jù)區(qū)域、所在單位、從事專業(yè)查詢?nèi)藛T,OneToMany直接將相應(yīng)的人員資質(zhì)帶出來,然后再根據(jù)用戶選中的資格證名稱和有效期至作為條件對人員資質(zhì)進(jìn)行過濾,在前臺過濾出用戶想要的數(shù)據(jù)。

過濾器思路

過濾器,本質(zhì)就是一個方法,輸入什么,然后輸出什么。

符合此處需求傳入的參數(shù)應(yīng)該為人員,資格證名稱,有效期至,然后輸出為處理過的人員。

過濾人員的人員資質(zhì),可能對于不熟悉本項(xiàng)目的人不容易理解,所以這里以人和電腦為例,一個人,可以有多個電腦,需求是將這個人的不符合過濾條件的電腦從數(shù)組中移除。

webApp.filter('yunzhiComputer', function() {
  return function(users, computerName) {
    angular.forEach(users, function(user) {
      angular.forEach(user.computers, function(computer, index) {
        if (computer.name !== computerName) {
          // 如果不符合條件,將該項(xiàng)從數(shù)組中移除
          user.computers.splice(index, 1);
        }
      });
    });
    return users;
  };
});
ng-repeat="user in users | yunzhiComputer: 'Mac'"

V層過濾的問題

因?yàn)榇颂幍目荚u員查詢需要進(jìn)行分頁,因?yàn)閿?shù)據(jù)量較少,所以計(jì)劃在前臺分頁。

分頁之后,那循環(huán)中的users就是我們分頁完的人。

假如一共有兩頁數(shù)據(jù),每頁十條,第一頁有一條符合的,第二頁有三條符合的,如果使用者在第一頁進(jìn)行過濾,那最后顯示出來的就是一條數(shù)據(jù),顯示不出第二頁符合條件的數(shù)據(jù)。

C層過濾

原來是先在C層分頁,然后在V層進(jìn)行過濾,為了避免分頁引起的數(shù)據(jù)過濾錯誤,所以決定將過濾器放到C層使用,先過濾,后分頁。

Filter - AngularJS

angular.module('FilterInControllerModule', []).
controller('FilterController', ['filterFilter', function FilterController(filterFilter) {
 this.array = [
  {name: 'Tobias'},
  {name: 'Jeff'},
  {name: 'Brian'},
  {name: 'Igor'},
  {name: 'James'},
  {name: 'Brad'}
 ];
 this.filteredArray = filterFilter(this.array, 'a');
}]);

第一種是AngularJS官方給出的寫法,直接過濾器名加上Filter可以直接依賴注入過濾器,例如我們這里的過濾器叫做yunzhiComputer,我們可以直接依賴注入yunzhiComputerFilter。

How to use a filter in a controller - StackOverflow

function myCtrl($scope, $filter)
{
  $filter('filtername')(arg1,arg2);
}

這是StackOverflow上給出的寫法,我比較喜歡這種寫法,畢竟我們寫過濾器,為了防止和已有的庫沖突,所以我們要將過濾器加上前綴yunzhi,然后還要在命名上大致描述這個過濾器的功能,這就使得過濾器的名稱很長,再加上Filter,那就更長了,完全沒必要。畢竟$filter中的字符串還是可以讓他人去直接粘貼然后Ctrl + P直接查詢到這個過濾器。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用Angularjs中模塊ui-route管理狀態(tài)的方法

    利用Angularjs中模塊ui-route管理狀態(tài)的方法

    這篇文章主要給大家介紹了如何用Angularjs中的模板ui-route來管理狀態(tài)的方法,文中通過示例代碼介紹的很詳細(xì),相信對大家的理解和學(xué)習(xí)具有一定的參考借鑒價值,有需要的朋友可以一起來學(xué)習(xí)學(xué)習(xí)。
    2016-12-12
  • cnpm加速Angular項(xiàng)目創(chuàng)建的方法

    cnpm加速Angular項(xiàng)目創(chuàng)建的方法

    這篇文章主要介紹了cnpm加速Angular項(xiàng)目創(chuàng)建的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Angular JS數(shù)據(jù)的雙向綁定詳解及實(shí)例

    Angular JS數(shù)據(jù)的雙向綁定詳解及實(shí)例

    這篇文章主要介紹了Angular JS數(shù)據(jù)的雙向綁定詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • 理解Angular的providers給Http添加默認(rèn)headers

    理解Angular的providers給Http添加默認(rèn)headers

    本篇文章主要介紹了理解Angular的providers給Http添加默認(rèn)headers,具有一定的參考價值,有興趣的同學(xué)可以了解一下
    2017-07-07
  • AngularJS select加載數(shù)據(jù)選中默認(rèn)值的方法

    AngularJS select加載數(shù)據(jù)選中默認(rèn)值的方法

    下面小編就為大家分享一篇AngularJS select加載數(shù)據(jù)選中默認(rèn)值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • AngularJS 表達(dá)式詳解及實(shí)例代碼

    AngularJS 表達(dá)式詳解及實(shí)例代碼

    這篇文章主要介紹了AngularJS 表達(dá)式,這里整理了詳細(xì)的資料,有需要的小伙伴可以參考下
    2016-09-09
  • angular指令筆記ng-options的使用方法

    angular指令筆記ng-options的使用方法

    本篇文章主要介紹了angular指令筆記ng-options的使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Angular 7工作方式事件綁定

    Angular 7工作方式事件綁定

    在本章中將討論事件綁定在Angular7中的工作方式,當(dāng)用戶以鍵盤移動,鼠標(biāo)單擊或鼠標(biāo)懸停的形式與應(yīng)用程序交互時,它將生成一個事件,需要處理這些事件以執(zhí)行某種操作,考慮一個示例以更好地理解這一點(diǎn)
    2023-12-12
  • 深入理解AngularJS中的ng-bind-html指令

    深入理解AngularJS中的ng-bind-html指令

    ng-bind-html和ng-bind的區(qū)別就是,ng-bind把值作為字符串,和元素的內(nèi)容進(jìn)行綁定,但是ng-bind-html把值作為html,和元素的html進(jìn)行綁定.相當(dāng)于jq里面的.text()和.html()。這篇文章主要給大家深入的介紹了AngularJS中ng-bind-html指令 的相關(guān)資料,需要的朋友可以參考下。
    2017-03-03
  • AngularJS入門教程(零):引導(dǎo)程序

    AngularJS入門教程(零):引導(dǎo)程序

    這篇文章主要介紹了AngularJS入門教程(零):引導(dǎo)程序,本文是系列文章中的一篇,本系列文章用開發(fā)一個AngularJS應(yīng)用來講解,需要的朋友可以參考下
    2014-12-12

最新評論

突泉县| 沂源县| 沧州市| 上饶县| 大连市| 沙坪坝区| 耿马| 伽师县| 赞皇县| 泰宁县| 获嘉县| 吉水县| 思茅市| 郸城县| 方正县| 秀山| 建阳市| 诸暨市| 长汀县| 南宫市| 沐川县| 扎鲁特旗| 改则县| 岳阳市| 灵璧县| SHOW| 漳平市| 达日县| 民和| 清新县| 毕节市| 同德县| 肇州县| 波密县| 黔东| 高邮市| 西华县| 舟曲县| 唐河县| 高碑店市| 城口县|