فیلترهای AngularJS
- صفحه قبلی دامنههای AngularJS
- صفحه بعدی خدمات AngularJS
میتوان در AngularJS پالایهکنندههایی برای فرمتدهی دادهها اضافه کرد.
فیلترهای AngularJS
AngularJS پالایهکنندههایی برای تبدیل دادهها ارائه میدهد:
currency
اعداد را به صورت فرمت پولی تبدیل میکندdate
تاریخ را به فرمت مشخصی تبدیل میکندfilter
یک زیر مجموعه از آرایه انتخاب میکندjson
اجسام را به صورت رشته JSON تبدیل میکندlimitTo
آرایه/تекст را به تعداد مشخصی از عناصر/کاراکترها محدود میکندlowercase
تекст را به حالت کوچک تبدیل میکندnumber
اعداد را به صورت رشته تبدیل میکندorderBy
با استفاده از عبارت آرایهها را مرتب میکندuppercase
تекст را به حالت بزرگ تبدیل میکند
اضافه کردن پالایهکننده به عبارت
میتوان از علامت خط تیره | برای اضافه کردن پالایهکننده به عبارت استفاده کرد، پس از آن یک پالایهکننده دیگر.
uppercase
پالایهکنندهها متن را به حالت بزرگ تبدیل میکنند:
مثال
<div ng-app="myApp" ng-controller="personCtrl"> <p>نام این است {{ lastName | uppercase }}</p> </div>
lowercase
پالایهکنندهها متن را به حالت کوچک تبدیل میکنند:
مثال
<div ng-app="myApp" ng-controller="personCtrl"> <p>نام است {{ lastName | lowercase }}</p> </div>
فیلتر را به دستور العمل اضافه میکند
با استفاده از کاراکتر پمپ |
به دنبال فیلتر، میتوان فیلتر را به دستور العمل اضافه کرد، به عنوان مثال ng-repeat
:
مثال
فیلتر orderBy آرایه را مرتبسازی میکند:
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names | orderBy:'country'"> {{ x.name + ', ' + x.country }} </li> </ul> </div>
فیلتر currency
currency
فیلتر عدد را به فرمت پولی تبدیل میکند:
مثال
<div ng-app="myApp" ng-controller="costCtrl"> <h1>قیمت: {{ price | currency }}</h1> </div>
برای اطلاعات بیشتر در مورد فیلتر currency، به راهنمای فیلتر AngularJS مراجعه کنید.
فیلتر filter
filter
فیلتر انتخاب زیر مجموعه آرایه را انجام میدهد.
filter
فیلتر فقط برای آرایهها استفاده میشود و آرایهای که شامل موارد تطابق است را بازمیگرداند.
مثال
نامهایی که حرف "i" را شامل میشوند را بازمیگرداند:
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names | filter : 'i'"> {{ x }} </li> </ul> </div>
برای اطلاعات بیشتر در مورد فیلتر filter، به راهنمای فیلتر AngularJS مراجعه کنید.
آرایه را بر اساس ورودی کاربر فیلتر میکند
با تنظیم ng-model
دستور العمل، میتوانیم از مقدار فیلد ورودی به عنوان عبارت در فیلتر استفاده کنیم.
یک حرف را در فیلد ورودی وارد کنید، لیست بر اساس موارد تطابق کوچکتر یا بزرگتر خواهد شد:
- جانی
- کارل
- مارگارته
- هگه
- جو
- گاستاو
- بریت
- مری
- کای
مثال
<div ng-app="myApp" ng-controller="namesCtrl"> <p><input type="text" ng-model="test"></p> <ul> <li ng-repeat="x in names | filter : test"> {{ x }} </li> </ul> </div>
آرایه را بر اساس ورودی کاربر مرتبسازی میکند
با کلیک بر روی سربرگ میتوان ترتیب مرتبسازی را تغییر داد:
نام کشور جانی نروژ کارل سوئد مارگارته انگلستان هگه نروژ جو دانمارک گاستاو سوئد بریت دانمارک مری انگلستان کای نروژبا اضافه کردن به سربرگ ng-click
دستور العمل، میتوانیم یک تابع را اجرا کنیم که ترتیب مرتبسازی آرایه را تغییر میدهد:
مثال
<div ng-app="myApp" ng-controller="namesCtrl"> <table border="1" width="100%"> <tr> <th ng-click="orderByMe('name')">Name</th> <th ng-click="orderByMe('country')">Country</th> </tr> <tr ng-repeat="x in names | orderBy:myOrderBy"> <td>{{x.name}}</td> <td>{{x.country}}</td> </tr> </table> </div> <script> angular.module('myApp', []).controller('namesCtrl', function($scope) { $scope.names = [ {name:'Jani',country:'Norway'}, {name:'Carl',country:'Sweden'}, {name:'Margareth',country:'England'}, {name:'Hege',country:'Norway'}, {name:'Joe',country:'Denmark'}, {name:'Gustav',country:'Sweden'}, {name:'Birgit',country:'Denmark'}, {name:'Mary',country:'England'}, {name:'Kai',country:'Norway'} }; $scope.orderByMe = function(x) { $scope.myOrderBy = x; } }); </script>
فیلتر سفارشی
شما میتوانید با ثبت یک کارخانه جدید برای فیلتر به داخل ماژول خود، یک فیلتر سفارشی ایجاد کنید:
مثال
ایجاد یک فیلتر سفارشی به نام "myFormat":
<ul ng-app="myApp" ng-controller="namesCtrl"> <li ng-repeat="x in names"> {{x | myFormat}} </li> </ul> <script> var app = angular.module('myApp', []); app.filter('myFormat', function() { return function(x) {}} var i, c, txt = ""; for (i = 0; i < x.length; i++) { c = x[i]; if (i % 2 == 0) { c = c.toUpperCase(); } txt += c; } return txt; }); }); app.controller('namesCtrl', function($scope) { $scope.names = ['Jani', 'Carl', 'Margareth', 'Hege', 'Joe', 'Gustav', 'Birgit', 'Mary', 'Kai']; }); </script>
myFormat
فیلترها هر حرف را به ترتیب یک به یک به حروف بزرگ تبدیل میکنند.
- صفحه قبلی دامنههای AngularJS
- صفحه بعدی خدمات AngularJS