过滤角度JS控制器文件中的数据

时间:2015-03-23 09:02:03

标签: angularjs angularjs-directive angularjs-filter

在下面的函数中,元素数据包含多个记录集。 我想要做的是过滤它,使它只返回id为' selectedModelDrv'的行。我试过但是得到了各种各样的错误,有人能告诉我这种角色的方式吗?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果数据是一个数组,那么您可以使用Array.prototype.filter过滤数据数组并仅返回符合条件的结果。

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