I have this collection of courses:
[{ id: 1, courseId: 2, text: \'John\' },
{ id: 2, courseId: 2, text: \'Willi\' },
{ id: 3, courseId: 2, text: \'Inga\' },
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.
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;
});
}
})