角度过滤第二级对象

时间:2014-02-12 16:40:07

标签: javascript angularjs angularjs-filter

我有一个如下所示的数组:

$scope.orders = [
    {
        id: 1,
        costumer_id: 1,
        product_id: 1,
        quantity: 2,
        costumer:
        {
            id: 1,
            name: John Doe,
            age: 47,
            state: Georgia,
            province: Atlanta
        }
    },
];

我想要做的是创建3个输入来根据客户的名字,建筑商的州或客户的省份对其进行过滤。这就是我在做的事情:

<tr ng-repeat="order in orders | filter:search">
    <td class="text-muted">{{ order.id }}</td>
    <td>{{ order.costumer.name }}</td>
    <td>{{ order.costumer.state }}</td>
    <td>{{ order.costumer.province }}</td>
    <td>
        {{ order.product_id }}
        <span class="label label-info">{{ order.quantity }} unidades</span>
    </td>
</tr>

要过滤的输入:

<input class="form-control input-sm" type="text" ng-model="search.$" placeholder="search for everything">
<input class="form-control input-sm" type="text" ng-model="search.costumer.name" placeholder="filter by name">
<input class="form-control input-sm" type="text" ng-model="search.costumer.state" placeholder="filter by state">
<input class="form-control input-sm" type="text" ng-model="search.costumer.province" placeholder="filter by province">

只有第一个输入过滤器有效,其他输入过滤器不行!我该如何进行这种过滤?!

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您在IE中进行测试,我认为可能是因为$scope.orders在数组末尾有一个逗号。

我在这里创建了一个Plunkr:http://plnkr.co/edit/P1LVvgjsRUYu9Z8cHGpR?p=preview