简体   繁体   English

过滤对象数据angularjs

[英]filter object data angularjs

I want to filter my inventory by barcode, can i do something like this? 我想按条形码过滤我的库存,我可以这样做吗? The main point here is, if the barcode what i am passing equals to inventory[i] barcode(in server), then change $scope.inventories to only those which barcodes match. 这里的要点是,如果我传递的条形码等于(服务器中的)inventory [i]条形码,则将$scope.inventories更改$scope.inventories仅与条形码匹配的条形码。 And then $scope.inventories only will consist of matching barcode inventories. 然后$ scope.inventories仅包含匹配的条形码库存。

Got some crazy errors. 有一些疯狂的错误。 Any help , how to filter object data? 有什么帮助,如何过滤对象数据?

$scope.inventories = new Inventory().query().$object;

$scope.filter = function(barcode) {
        for(var i = 0; i < $scope.inventories.length; i++){
            if($scope.inventories[i].barcode == barcode){
                $scope.inventories = $scope.inventories[i];
            } 
        }
    };

Template 模板

<ul ng-repeat="inventory in inventories">
    <li><a href="" ng-click="filter(inventory.barcode)">{{inventory.barcode}}</a></li>
</ul>

Create different variable name for filtered items 为过滤的项目创建不同的变量名

    $scope.filter = function(barcode) {
        var filtered = [];
        for(var i = 0; i < $scope.inventories.length; i++){
            if($scope.inventories[i].barcode == barcode){
                filtered.push($scope.inventories[i]);
            } 
        }
        $scope.filtered_inventories = filtered;
    };

Define a filter: 定义一个过滤器:

$scope.filterByBarcode = function(list, barcode) {
    return list.filter(function(item){
        return item.barcode === barcode;
    });
};

Filter in the list at ng-repeat: 在ng-repeat中过滤列表:

<ul ng-repeat="inventory in filterByBarcode(inventories, barcode)">
    <li><a href="" ng-click="inventory">{{inventory.barcode}}</a></li>  <!-- Not sure if this is what you want to display --> 
</ul>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM