AngularJS - Filtreler

Verileri değiştirmek için filtreler kullanılır. Dikey çizgi (|) karakteri kullanılarak ifade veya yönergelerde çomak yerleştirilebilirler. Aşağıdaki liste, yaygın olarak kullanılan filtreleri göstermektedir.

Sr.No. İsim & Açıklama
1

uppercase

bir metni büyük harfli metne dönüştürür.

2

lowercase

bir metni küçük harfli metne dönüştürür.

3

currency

metni para birimi biçiminde biçimlendirir.

4

filter

diziyi, sağlanan ölçütlere göre dizinin bir alt kümesine göre filtreleyin.

5

orderby

diziyi sağlanan ölçütlere göre sıralar.

Büyük Harf Filtresi

Dikey çizgi karakterini kullanarak bir ifadeye büyük harf filtresi ekleyin. Burada, öğrenci adını tamamen büyük harflerle yazdırmak için büyük harf filtresi ekledik.

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}}

Küçük Harf Filtresi

Dikey çizgi karakteri kullanarak bir ifadeye küçük harfli filtre ekleyin. Burada, öğrenci adını tümü küçük harflerle yazdırmak için küçük harf filtresi ekledik.

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}}

Para Birimi Filtresi

Dikey çubuk karakteri kullanarak sayı döndüren bir ifadeye para birimi filtresi ekleyin. Burada, para birimi biçimini kullanarak ücretleri yazdırmak için para birimi filtresi ekledik.

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

Filtrele

Yalnızca gerekli konuları görüntülemek için, filtre olarak subjectName'i kullanıyoruz.

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>

Sırala Filtreye Göre

Konuları markalara göre sıralamak için, orderBy markalarını kullanırız.

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

Misal

Aşağıdaki örnek, yukarıda belirtilen tüm filtrelerin kullanımını göstermektedir.

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>

Çıktı

Bir web tarayıcısında testAngularJS.htm dosyasını açın . Sonucu görün.