Max
Max

Reputation: 482

Filter data in angular JS Controller file

in the below function the element data contains multiple record sets. What I want to do is filter it so that it returns only the row which has id same as 'selectedModelDrv'. I tried but getting all sorts of errors, can someone tell me the angular way of doing it?

vm.driverModelSelectorGo = function () {

        var selectedModelDrv = vm.driver.driverModelId;
        return datacontext.lookup.getLookupList(datacontext.lookupLists.driverModel).then(function (data) {
            //Filter 'data' so that data.driverModelId == selectedModelDrv
        })
    };

Regards Max

Upvotes: 0

Views: 219

Answers (2)

Satyam Koyani
Satyam Koyani

Reputation: 4274

Inject $filter to your controller

function myCtrl($scope, $filter)
{
}

Then wherever you want to use that filter, just use it like this:

 $filter('filter');

Like this :

vm.driverModelSelectorGo = function () {    
        var selectedModelDrv = vm.driver.driverModelId;
        return datacontext.lookup.getLookupList(datacontext.lookupLists.driverModel).then(function (data) {
            $scope.filteredData = $filter('filter')(data,{id:selectedModelDrv});
        })
    };

Upvotes: 1

mohamedrias
mohamedrias

Reputation: 18566

If data is an array, then you can use Array.prototype.filter to filter the data array and return only results matching your condition.

vm.driverModelSelectorGo = function () {
     var selectedModelDrv = vm.driver.driverModelId;
     return datacontext.lookup.getLookupList(datacontext.lookupLists.driverModel).then(function (data) {
        return data.filter(function(value) {
           return value.driverModelId == selectedModelDrv;
         });
     })
 };

Upvotes: 0

Related Questions