首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS -按多个复选框组进行筛选

AngularJS -按多个复选框组进行筛选
EN

Stack Overflow用户
提问于 2014-01-16 23:10:34
回答 1查看 200关注 0票数 0

我正在寻找一些建议,关于什么是最好的方法:

我大约有5组复选框。列表中的内容包括品牌、型号、颜色、尺寸等。当用户勾选品牌、颜色等时,汽车列表就会根据他们的选择进行更新。

这个列表是从对数据库的调用中生成的,我知道如果该列表作为一个可以在前端完全过滤的列表生成一次,这将是相当简单的,但是数据库预计会增长到超过10,000行,所以这并不理想。

我最初的想法是,每当复选框被勾选时,就将结果发送到数据库,并将结果返回给视图。这对于一组复选框可以很好地工作,但是我不能理解如何在多个复选框组中做到这一点。

下面是我的控制器中处理这个问题的函数:

代码语言:javascript
复制
$scope.getSelectedBrands = function() {
    $scope.brandsselected = $filter('filter')($scope.brands, {checked: true});  
    var senddata = $filter('filter')($scope.brands, {checked: true});
    $http.post('/brands', senddata).success(function(data, status, response) {
        $scope.cars = data;  
    });        
}

我不知道为每个复选框组使用不同但非常相似的函数是否太有意义,而且看起来不是很枯燥。目前,每个复选框组(例如品牌)都有自己的URL,用于发布以返回结果集。此外,由于任何复选框组中的复选框都可以首先被勾选,因此初始数据将从不同的函数返回,具体取决于复选框被选中的内容。

有没有更好的方法来解决这个问题?我还需要允许用户取消选中复选框并重新填充列表。

希望这是有意义的。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-01-17 01:22:00

好吧,我想我用错了方法。我所需要做的就是创建一个如下所示的函数,并在选中复选框时触发它。它只是调用表单数据。

代码语言:javascript
复制
$scope.getFormdata = function(){
    var formdata = [{
            brands : $filter('filter')($scope.brands, {checked: true}),
            types : $filter('filter')($scope.types, {checked: true})
    }];
    console.log(formdata);
} 

非常简单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21165496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档