Reputation: 482
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
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
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