在 angular JS 控制器文件中过滤数据

Filter data in angular JS Controller file

在下面的函数中,元素数据包含多个记录集。 我想要做的是对其进行过滤,使其 returns 只有 id 与 'selectedModelDrv' 相同的行。我试过了,但出现了各种错误,有人可以告诉我 angular 的方法吗?

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
        })
    };

问候 Max

如果数据是一个数组,那么你可以使用Array.prototype.filter来过滤数据数组,return只有符合你条件的结果。

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;
         });
     })
 };

将 $filter 注入你的控制器

function myCtrl($scope, $filter)
{
}

那么无论你想在哪里使用那个过滤器,都可以像这样使用它:

 $filter('filter');

像这样:

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});
        })
    };