Reputation: 3560
Im new in Angular, And Im try to Using filter by JavaScript in angularJS, But Im get null..
app.controller('aneesFilters', function($filter){
this.filterItem = filterItems;
this.filterJSItem = $filter('currency')(filterItems, 'price');
});
var filterItems = [
{price: 1254},
{price: 154},
{price: 963},
{price: 1880},
];
html code:
<div ng-controller="aneesFilters as filter">
<div ng-repeat="item in filter.filterItem">
<div>{{item.price | currency}}</div>
<div>{{item.price | currency:"JOD"}}</div>
<div>{{item.price | currency:"JOD":0}}</div>
<hr />
</div>
<h2>By javascript (Used filter in controller)</h2>
<div ng-repeat="item in filter.filterJSItem">
<div>{{item.price}}</div>
<hr />
</div>
</div>
surly, code work when Im using filter on Expression, problem was happened when call FilterJsItem ..
thanks a lot.
Upvotes: 1
Views: 65
Reputation: 180
app.controller('aneesFilters', function($filter){
this.filterItem = filterItems;
this.filterJSItem = $filter('currency')(filterItems.price);
});
Upvotes: 0
Reputation: 4360
I've created a plunker here
Basically I've created another filter which uses currency filter and works on array modifies it and returns filtered array.
// Code goes here
var app = angular.module("app", []);
app.filter('currenyArray', function($filter) {
return function(input, format, prop) {
input = input || [];
var out = angular.copy(input);
for (var i = 0; i < input.length; i++) {
var p = $filter('currency')(input[i][prop],format);
out[i][prop] = p;
console.log( input[i][prop])
}
return out;
};
})
app.controller('myCtrl', function($filter, $scope){
$scope.filterItem = [
{price: 1254},
{price: 154},
{price: 963},
{price: 1880},
];
$scope.filterJS2 = $filter('currenyArray')($scope.filterItem, 'USD', 'price');
});
Upvotes: 1