我正在寻找一些建议,关于什么是最好的方法:
我大约有5组复选框。列表中的内容包括品牌、型号、颜色、尺寸等。当用户勾选品牌、颜色等时,汽车列表就会根据他们的选择进行更新。
这个列表是从对数据库的调用中生成的,我知道如果该列表作为一个可以在前端完全过滤的列表生成一次,这将是相当简单的,但是数据库预计会增长到超过10,000行,所以这并不理想。
我最初的想法是,每当复选框被勾选时,就将结果发送到数据库,并将结果返回给视图。这对于一组复选框可以很好地工作,但是我不能理解如何在多个复选框组中做到这一点。
下面是我的控制器中处理这个问题的函数:
$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,用于发布以返回结果集。此外,由于任何复选框组中的复选框都可以首先被勾选,因此初始数据将从不同的函数返回,具体取决于复选框被选中的内容。
有没有更好的方法来解决这个问题?我还需要允许用户取消选中复选框并重新填充列表。
希望这是有意义的。
谢谢
发布于 2014-01-17 01:22:00
好吧,我想我用错了方法。我所需要做的就是创建一个如下所示的函数,并在选中复选框时触发它。它只是调用表单数据。
$scope.getFormdata = function(){
var formdata = [{
brands : $filter('filter')($scope.brands, {checked: true}),
types : $filter('filter')($scope.types, {checked: true})
}];
console.log(formdata);
} 非常简单。
https://stackoverflow.com/questions/21165496
复制相似问题