w3schools আমি AngularJS দিয়ে কোন অ্যারে ফিল্টার করব এবং ফিল্টারযুক্ত বস্তুর কোন সম্পত্তিটি এনজি মডেলের বৈশিষ্ট্য হিসাবে ব্যবহার করব?




w3schools (7)

এখানে একটি কাজের নমুনা সহ একটি সংশোধিত JSBin:

http://jsbin.com/sezamuja/1/edit

আমি ইনপুট ফিল্টার সঙ্গে কি কি এখানে:

<input ng-model="(results.subjects | filter:{grade:'C'})[0].title">

যদি আমার বস্তুর একটি অ্যারে থাকে, এবং আমি কোনও ফিল্টারের উপর ভিত্তি করে উপাদানগুলির একটি উপাদানতে কৌণিক মডেলটি বাঁধতে চাই, তাহলে আমি কীভাবে এটি করব? আমি একটি কংক্রিট উদাহরণ দিয়ে ভাল ব্যাখ্যা করতে পারেন:

এইচটিএমএল:

<!DOCTYPE html>
<html ng-app>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
        <meta charset=utf-8 />
        <title>JS Bin</title>
    </head>
    <body ng-controller="MyCtrl">
        <input ng-model="results.year">
        <input ng-model="results.subjects.title | filter:{grade:'C'}">
    </body>
</html>

নিয়ন্ত্রক:

function MyCtrl($scope) {
  $scope.results = {
    year:2013,
    subjects:[
      {title:'English',grade:'A'},
      {title:'Maths',grade:'A'},
      {title:'Science',grade:'B'},
      {title:'Geography',grade:'C'}
    ]
  };
}

JSBin: http://jsbin.com/adisax/1/edit

আমি গ্রেড 'সি' দিয়ে বিষয়টিতে দ্বিতীয় ইনপুট ফিল্টার করতে চাই, তবে আমি মডেলটিকে গ্রেডে আবদ্ধ করতে চাই না; আমি গ্রেড 'সি' আছে বিষয় শিরোনাম এটি আবদ্ধ করতে চান।

এই সম্ভব, এবং যদি তাই হয়, এটা কিভাবে করা হয়?


আপনি যদি ES6 ব্যবহার করেন তবে আপনি পারেন:

var sample = [1, 2, 3]

var result = sample.filter(elem => elem !== 2)

/* output */
[1, 3]

এছাড়াও নোটিশ ফিল্টারটি বর্তমান অ্যারের আপডেট না করে এটি প্রতিবার একটি নতুন ফিল্টারেড অ্যারে ফিরিয়ে দেবে।


<div ng-repeat="subject in results.subjects | filter:{grade:'C'}">
    <input ng-model="subject.title" />
</div>

একাধিক কলাম সঙ্গে এইচটিএমএল একই ফিল্টার প্রয়োগ, শুধু উদাহরণ:

 variable = (array | filter : {Lookup1Id : subject.Lookup1Id, Lookup2Id : subject.Lookup2Id} : true)

যদি আপনি নিয়ামক ফলাফলের একটি পৃথক তালিকা তৈরি করতে চেয়েছিলেন আপনি একটি ফিল্টার প্রয়োগ করতে পারে

function MyCtrl($scope, filterFilter) {
  $scope.results = {
    year:2013,
    subjects:[
      {title:'English',grade:'A'},
      {title:'Maths',grade:'A'},
      {title:'Science',grade:'B'},
      {title:'Geography',grade:'C'}
    ]
  };
  //create a filtered array of results 
  //with grade 'C' or subjects that have been failed
  $scope.failedSubjects = filterFilter($scope.results.subjects, {'grade':'C'});
}

তারপর আপনি রেফারেন্স Subjects একই ভাবে আপনি ফলাফল বস্তুর উল্লেখ করবে রেফারেন্স করতে পারেন

আপনি https://docs.angularjs.org/guide/filter এটি সম্পর্কে আরও পড়তে পারেন

যেহেতু এই উত্তর কৌণিক ডকুমেন্টেশন আপডেট করেছে এখন তারা ফিল্টার কলিং সুপারিশ

// update 
// eg: $filter('filter')(array, expression, comparator, anyPropertyKey);
// becomes
$scope.failedSubjects = $filter('filter')($scope.results.subjects, {'grade':'C'});

আপনি সমস্ত "সি" গ্রেড পেতে আপনার নিয়ামক মধ্যে "ফিল্টার" ফিল্টার ব্যবহার করতে পারেন। ফলাফল অ্যারেটির প্রথম উপাদানটি আপনাকে "সি" গ্রেডের বিষয়টির শিরোনাম দেবে।

$scope.gradeC = $filter('filter')($scope.results.subjects, {grade: 'C'})[0];

http://jsbin.com/ewitun/1/edit

সমতল ES6 সঙ্গে একই:

$scope.gradeC = $scope.results.subjects.filter((subject) => subject.grade === 'C')[0]

অনুগ্রহ করে মনে রাখবেন, যদি আপনি এই মত $ ফিল্টার ব্যবহার করেন:

$scope.failedSubjects = $filter('filter')($scope.results.subjects, {'grade':'C'});

এবং আপনি অন্য গ্রেড আছে, ওহ আমি dunno, সিসি বা এসি বা সি + বা CCC এটি তাদের মধ্যে pulls। আপনি একটি সঠিক ম্যাচ জন্য একটি প্রয়োজন যুক্ত করতে হবে:

$scope.failedSubjects = $filter('filter')($scope.results.subjects, {'grade':'C'}, true);

যখন আমি কিছু কমিশনের বিশদ বিবরণ এনেছিলাম তখন এই সত্যই আমাকে হত্যা করেছিল:

var obj = this.$filter('filter')(this.CommissionTypes, { commission_type_id: 6}))[0];

শুধুমাত্র একটি বাগ জন্য বলা হয় কারণ এটি 6 কমিশন আইডি 56 টেনে বরং 6।

সত্য বাহিনী একটি সঠিক ম্যাচ যোগ করা।

var obj = this.$filter('filter')(this.CommissionTypes, { commission_type_id: 6}, true))[0];

তবুও, আমি এটি পছন্দ করি (আমি টাইপcript ব্যবহার করি, তাই "চলুন" এবং =>):

let obj = this.$filter('filter')(this.CommissionTypes, (item) =>{ 
             return item.commission_type_id === 6;
           })[0];

আমি যে কারণ, রাস্তা নিচে কিছু সময়ে, আমি যে ফিল্টার তথ্য, ইত্যাদি থেকে আরো কিছু তথ্য পেতে চাই ... অধিকার আছে ফাংশন অধিকার হুড খোলা ছেড়ে।





angularjs