การใช้ตัวกรอง An Ang.j.js ซ้ำอีกครั้ง - มุมมอง / ตัวควบคุม
โซลูชันนี้ครอบคลุมการนำตัวกรองเชิงมุมกลับมาใช้ใหม่ ซึ่งเป็นอีกวิธีหนึ่งในการกรองข้อมูลและ Google ลงจอดที่นี่เมื่อฉันต้องการเช่นนั้น และฉันต้องการแบ่งปัน
ใช้ Case
หากคุณกรองอยู่แล้วให้พูดใน ng-repeat ในมุมมองของคุณ (ดังด้านล่าง) ดังนั้นคุณอาจกำหนดตัวกรองในคอนโทรลเลอร์ดังต่อไปนี้ จากนั้นคุณสามารถนำมาใช้ซ้ำได้ในตัวอย่างสุดท้าย
ตัวอย่างการใช้ตัวกรอง - ทำซ้ำที่กรองแล้วในมุมมอง
<div ng-app="someApp" ng-controller="someController">
<h2>Duplicates</h2>
<table class="table table-striped table-light table-bordered-light">
<thead>
<tr>
<th>Name</th>
<th>Gender</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="person in data | filter: searchDuplicate:true">
<td>{{person.name}}</td>
<td>{{person.gender}}</td>
</tr>
</tbody>
</table>
</div>
ตัวอย่างคำจำกัดความตัวกรองเชิงมุม
angular.module('someApp',[])
.controller('someController', function($scope, $filter ) {
$scope.people = [{name: 'Bob', gender: 'male' , hasDuplicate: true },
{name: 'Bob', gender: 'male' , hasDuplicate: true },
{name: 'Bob', gender: 'female', hasDuplicate: false}];
$scope.searchDuplicate = { hasDuplicate : true };
})
ดังนั้นแนวคิดที่นี่คือคุณใช้ตัวกรองที่สร้างขึ้นสำหรับมุมมองของคุณแล้วและตระหนักว่าคุณต้องการใช้มันในคอนโทรลเลอร์ของคุณด้วย
ใช้ฟังก์ชันตัวกรองภายในตัวควบคุมตัวอย่างที่ 1
var dup = $filter('filter')($scope.people, $scope.searchDuplicate, true)
ใช้ฟังก์ชันตัวกรองภายในตัวควบคุมตัวอย่างที่ 2
แสดงปุ่มเฉพาะเมื่อไม่พบรายการซ้ำโดยใช้ตัวกรองก่อนหน้า
ปุ่ม Html
<div ng-if="showButton()"><button class="btn btn-primary" ng-click="doSomething();"></button></div>
ปุ่มแสดง / ซ่อน
$scope.doSomething = function(){ /* ... */ };
$scope.showButton = function(){ return $filter('filter')($scope.people, $scope.searchDuplicate, true).length == 0; };
บางคนอาจพบว่าตัวกรองรุ่นนี้ใช้งานง่ายและเป็นตัวเลือก Angular.js
พารามิเตอร์ตัวเปรียบเทียบเปรียบเทียบ "จริง" ที่ใช้ในมุมมองและในการเรียกใช้ฟังก์ชัน $ filter ระบุว่าคุณต้องการเปรียบเทียบแบบเข้มงวด หากคุณไม่ระบุค่าสามารถค้นหาได้หลายคอลัมน์
https://docs.angularjs.org/api/ng/filter/filter