How to create filter in Angularjs?

后端 未结 2 1351
无人及你
无人及你 2021-01-23 07:03

I have this collection of courses:

 [{ id: 1, courseId: 2, text: \'John\' },
  { id: 2, courseId: 2, text: \'Willi\' },
  { id: 3, courseId: 2, text: \'Inga\' },         


        
相关标签:
2条回答
  • 2021-01-23 07:11

    I have created a filter in angularJs project.

    in my angular app name is angularApp.

    var app = angular.module('angularApp', []); // This is your main angular app.
    

    Now you want to create a filter for decode url.

    app.filter('decodeURL', function() {
        return function(text) {
            if(text) {
                return text.split(' ').join('-').toLowerCase().replace(/[^a-z0-9]+/g, '-');
            }
        }
    });
    

    The above code is to create a filter to decode url. And my filter name is 'decodeURL' . we will use decodeURL as a filter in my code like if your URL is-

    http://www.example.com/test1 test2 tes3

    then filter make the URL like this-

    http://www.example.com/test1-test2-tes3

    How to use this filter in the html-

    <a ui-sref="{{business.category[0].categoryName.toLowerCase()}}Detail({id:business.id,title:(business.title | decodeURL)})"></a>
    

    // The above is for state routing in angularjs.

    <a href="/coupon/{{coupon.id}}/{{coupon.title | decodeURL}}"
                                           class="btn btn-warning show-btnhome show-button-margin">Show</a>
    

    //The above code for URL redirecting.

    0 讨论(0)
  • 2021-01-23 07:27

    You could create your custom filter so that can provide you the filtered values, filter should take array of element to be filter array.

    Markup

    ng-repeat="course in courses| customFilter: [{"id": 3},{"id": 2},{"id": 1}]""
    

    Filter

    app.filter('customFilter', function(){
      return function(array, filterArray){
         var ids = [];
         angular.forEach(filterArray, function(val, index) {
            ids.push(val.id);
         }
         return array.filter(function(value){
            return ids.indexOf(value.id) !== -1;
         });
      }
    })
    
    0 讨论(0)
提交回复
热议问题