AngularJS - Filtry

Filtry służą do modyfikacji danych. Mogą być umieszczone w wyrażeniach lub dyrektywach przy użyciu znaku kreski pionowej (|). Poniższa lista przedstawia często używane filtry.

Sr.No. Nazwa i opis
1

uppercase

konwertuje tekst na tekst pisany dużymi literami.

2

lowercase

konwertuje tekst na małe litery.

3

currency

formatuje tekst w formacie walutowym.

4

filter

przefiltruj tablicę do podzbioru na podstawie podanych kryteriów.

5

orderby

porządkuje tablicę na podstawie podanych kryteriów.

Filtr wielkich liter

Dodaj filtr wielkich liter do wyrażenia za pomocą pionowej kreski. Tutaj dodaliśmy filtr wielkich liter, aby wyświetlać nazwiska uczniów wielkimi literami.

Enter first name:<input type = "text" ng-model = "student.firstName">
Enter last name: <input type = "text" ng-model = "student.lastName">
Name in Upper Case: {{student.fullName() | uppercase}}

Filtr małych liter

Dodaj filtr małych liter do wyrażenia za pomocą pionowej kreski. Tutaj dodaliśmy filtr małych liter, aby wydrukować nazwisko ucznia wszystkimi małymi literami.

Enter first name:<input type = "text" ng-model = "student.firstName">
Enter last name: <input type = "text" ng-model = "student.lastName">
Name in Lower Case: {{student.fullName() | lowercase}}

Filtr walutowy

Dodaj filtr walutowy do wyrażenia zwracającego liczbę za pomocą pionowej kreski. Tutaj dodaliśmy filtr walutowy do drukowania opłat przy użyciu formatu waluty.

Enter fees: <input type = "text" ng-model = "student.fees">
fees: {{student.fees | currency}}

Filtr

Aby wyświetlić tylko wymagane tematy, jako filtru używamy subjectName.

Enter subject: <input type = "text" ng-model = "subjectName">
Subject:
<ul>
   <li ng-repeat = "subject in student.subjects | filter: subjectName">
      {{ subject.name + ', marks:' + subject.marks }}
   </li>
</ul>

OrderBy Filter

Aby uporządkować tematy według znaków, używamy znaków orderBy.

Subject:
<ul>
   <li ng-repeat = "subject in student.subjects | orderBy:'marks'">
      {{ subject.name + ', marks:' + subject.marks }}
   </li>
</ul>

Przykład

Poniższy przykład pokazuje użycie wszystkich wyżej wymienionych filtrów.

testAngularJS.htm

<html>
   <head>
      <title>Angular JS Filters</title>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
      </script>
   </head>
   
   <body>
      <h2>AngularJS Sample Application</h2>
      
      <div ng-app = "mainApp" ng-controller = "studentController">
         <table border = "0">
            <tr>
               <td>Enter first name:</td>
               <td><input type = "text" ng-model = "student.firstName"></td>
            </tr>
            <tr>
               <td>Enter last name: </td>
               <td><input type = "text" ng-model = "student.lastName"></td>
            </tr>
            <tr>
               <td>Enter fees: </td>
               <td><input type = "text" ng-model = "student.fees"></td>
            </tr>
            <tr>
               <td>Enter subject: </td>
               <td><input type = "text" ng-model = "subjectName"></td>
            </tr>
         </table>
         <br/>
         
         <table border = "0">
            <tr>
               <td>Name in Upper Case: </td><td>{{student.fullName() | uppercase}}</td>
            </tr>
            <tr>
               <td>Name in Lower Case: </td><td>{{student.fullName() | lowercase}}</td>
            </tr>
            <tr>
               <td>fees: </td><td>{{student.fees | currency}}
               </td>
            </tr>
            <tr>
               <td>Subject:</td>
               <td>
                  <ul>
                     <li ng-repeat = "subject in student.subjects | filter: subjectName |orderBy:'marks'">
                        {{ subject.name + ', marks:' + subject.marks }}
                     </li>
                  </ul>
               </td>
            </tr>
         </table>
      </div>
      
      <script>
         var mainApp = angular.module("mainApp", []);
         
         mainApp.controller('studentController', function($scope) {
            $scope.student = {
               firstName: "Mahesh",
               lastName: "Parashar",
               fees:500,
               
               subjects:[
                  {name:'Physics',marks:70},
                  {name:'Chemistry',marks:80},
                  {name:'Math',marks:65}
               ],
               fullName: function() {
                  var studentObject;
                  studentObject = $scope.student;
                  return studentObject.firstName + " " + studentObject.lastName;
               }
            };
         });
      </script>
      
   </body>
</html>

Wynik

Otwórz plik testAngularJS.htm w przeglądarce internetowej. Zobacz wynik.