ایجاد فیلترهای سفارشی در AngularJS
شنبه 27 شهریور 1395در این مقاله ، خواهیم دید که چگونه فیلترها را در AngularJS ، سفارشی سازی کنیم. همچنین خواهیم دید که فیلتر سفارشی سازی شده چیست و با یک مثال نحوه ی ایجاد یک فیلتر سفارشی سازی شده را یاد خواهیم گرفت.
فیلتر سفارشی سازی شده در angularJS چیست؟
فیلتر سفارشی سازی شده ، یک تابع می باشد که تابع را برمی گرداند. ما از یک تابع فیلتر برای ایجاد فیلترهای سفارشی سازی شده ، استفاده می کنیم.
ابتدا به سراغ Controller می رویم ، دراینجا ما یک فیلد جنسیت اضافه می کنیم و مقدار در نظر گرفته شده برای مرد 1 و برای زن 2 می باشد.بنابراین کد Controller ما به صورت زیر است.
1. var mypartone = angular.module("mymodule", []).controller("myController", function($scope) 2. { 3. var employees = [{ 4. name: "ایمان", 5. gender: 1, 6. dateOfBirth: new Date("July 21,1960"), 7. Address: "تهران", 8. Salary: "1234.34" 9. }, { 10. name: "سجاد", 11. gender: 1, 12. dateOfBirth: new Date("July 20,1960"), 13. Address: "تهران", 14. Salary: "12.34" 15. }, { 16. name: "علی", 17. gender: 1, 18. dateOfBirth: new Date("July 19,1960"), 19. Address: "کرج", 20. Salary: "1235.34" 21. }, { 22. name: "سارا", 23. gender: 2, 24. dateOfBirth: new Date("July 18,1960"), 25. Address: "شیراز", 26. Salary: "5589.34" 27. }]; 28. $scope.employees = employees; 29. });
همانطوری که در کد بالا می بینید ، ما یک ستون جنسیت اضافه کردیم ، که مقدار را ارسال می کند.به طور مشابه ، یک ستون برای view اضافه کردیم.
1. <table> 2. <thead> 3. <tr> 4. <th > نام</th> 5. <th>جنسیت</th> 6. <th >تاریخ تولد </th> 7. <th >آدرس</th> 8. <th>حقوق</th> 9. 10. </tr> 11. </thead> 12. <tbody> 13. <tr ng-repeat="employee in employees"> 14. <td>{{employee.name }}</td> 15. <td>{{employee.gender}}</td> 16. <td>{{employee.dateOfBirth }}</td> 17. <td>{{employee.Address }}</td> 18. <td>{{employee.Salary }}</td> 19. 20. 21. </tr> 22. 23. </tbody> 24. </table>
حال ، برنامه را اجرا بگیرید و ببینید که خروجی آن چیست.
ما مقدارهای مربوطه را می گیریم .حال ، بترتیب برای مرد و زن مقدارها را به string تبدیل می کنیم.
حال ، از یک فیلتر می خواهیم استفاده کنیم.
<td>{{employee.gender|gender}}</td>
حال ، به Controller برمیگردیم.
در اینجا ، یک فیلتر اضافه می کنیم و ما در این فیلتر نام فیلتر و تابع را ارسال می کنیم.در داخل آن تابع ، ما یک تابع anonymous ، پاس می دهیم که خروجی را به عنوان جنسیت می گیرد و ما یک switch case بر روی آن می زنیم.در این مورد وقتی که مقدار آن برابر 1 است مرد و اگر 2 باشد زن را برمیگرداند.
1. .filter("gender", function() 2. { 3. return function(gender) { 4. switch (gender) { 5. case 1: 6. return "مرد"; 7. case 2: 8. return "زن"; 9. } 10. } 11. })
بنابراین کد نهایی ما :
var mypartone = angular.module("mymodule", []).filter("gender", function () { return function (gender) { switch (gender) { case 1: return "مرد"; case 2: return "زن"; } } }).controller("myController", function ($scope) { var employees = [{ name: "ایمان", gender: 1, dateOfBirth: new Date("July 21,1960"), Address: "تهران", Salary: "1234.34" }, { name: "سجاد", gender: 1, dateOfBirth: new Date("July 20,1960"), Address: "تهران", Salary: "12.34" }, { name: "علی", gender: 1, dateOfBirth: new Date("July 19,1960"), Address: "کرج", Salary: "1235.34" }, { name: "سارا", gender:2, dateOfBirth: new Date("July 18,1960"), Address: "شیراز", Salary: "5589.34" }]; $scope.employees = employees; }); حال ، صفحه را بارگذاری کنید .
همانطوری که میبینید مقادیر مربوطه موارد مربوطه ی خود را نمایش می دهند،به عنوان مثال مرد و زن .
حال ، در یک کد مشابه Controllerها و فیلترها در فایل های جداگانه قرار گرفته اند ما این فیلتر ها را جدا می کنیم و آدرس را در view ارجاع می دهیم.
بنابراین ، روی Solution راست کلیک کنید و فایل JavaScript را اضافه کنید.نام آن را Filter.js بگذارید و فایل را ارجاع دهید.
حال، فقط کد فیلتر را در فایل زیر قرار دهید:
حال ، reference را به آن اضافه میکنیم.
app.filter("gender", function () { return function(gender) { switch (gender) { case 1: return "مرد"; case 2: return "زن"; } } })
حال فقط reference فایل Filters.js را به فایل view اضافه می کنیم.
<script src="Filter.js"></script>
بنابراین کد نهایی ما
<!DOCTYPE html> <html ng-app="mymodule"> <head runat="server"> <title>Overview Angular </title> <script src="Scripts/angular.js"></script> <script src="JavaScript.js"></script> <script src="Scripts/angular.js"></script> <script src="Filter.js"></script> </head> <body ng-controller="myController"> <form id="form1" runat="server"> <div dir="rtl"> <table> <thead> <tr> <th> نام </th> <th>جنسیت</th> <th>تاریخ تولد </th> <th>آدرس </th> <th>حقوق </th> </tr> </thead> <tbody> <tr ng-repeat="employee in employees"> <td>{{employee.name }}</td> <td>{{employee.gender|gender}}</td> <td>{{employee.dateOfBirth }}</td> <td>{{employee.Address }}</td> <td>{{employee.Salary }}</td> </tr> </tbody> </table> </div> </form> </body> </html>
حال فقط برنامه را اجرا بگیرید.
بنابراین ، ما فایل Controller و فایل فیلترها را جدا کردیم.
آموزش angular
- AngularJs
- 1k بازدید
- 2 تشکر