एक Angular.js फ़िल्टर का पुन: उपयोग करना - दृश्य / नियंत्रक
यह सॉल्यूशन एंगुलर फिल्टर्स का पुन: उपयोग कर रहा है। जो डेटा को फ़िल्टर करने का एक और तरीका है, और जब मुझे ऐसी ज़रूरत हुई तो Google ने मुझे यहाँ उतारा; और मुझे साझा करना पसंद है
उदाहरण
यदि आप पहले से ही फ़िल्टर कर रहे हैं, तो अपने दृश्य में एनजी-रिपीट में कहें (नीचे के रूप में), तो आपने नियंत्रक में एक फिल्टर को आगे के रूप में परिभाषित किया होगा। और फिर आप अंतिम उदाहरणों के रूप में पुन: उपयोग कर सकते हैं।
फ़िल्टर का उपयोग उदाहरण - दृश्य में फ़िल्टर्ड दोहराएँ
<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 के भीतर
पूर्व फ़िल्टर का उपयोग करके कोई डुप्लिकेट नहीं मिलने पर ही बटन दिखाएं।
एचटीएमएल बटन
<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 विकल्प है।
वैकल्पिक तुलनित्र पैरामीटर "सही" दृश्य में और $ फ़िल्टर फ़ंक्शन कॉल में उपयोग किया जाता है, यह निर्दिष्ट करता है कि आप एक सख्त तुलना चाहते हैं। यदि आप छोड़ देते हैं, तो कई स्तंभों के लिए मान खोजे जा सकते हैं।
https://docs.angularjs.org/api/ng/filter/filter