javascript - Angular 过滤器二级对象

标签 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">

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

谢谢!

最佳答案

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

我为此创建了一个 Plunkr:http://plnkr.co/edit/P1LVvgjsRUYu9Z8cHGpR?p=preview

关于javascript - Angular 过滤器二级对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21733999/

相关文章:

javascript - 是否有更简单的方法来引用事件的源元素?

javascript - 后面的弹出窗口(不是 z-index)以及如何关闭链接中的弹出窗口

authentication - 如何使用 AngularJS ngView 为未经授权的用户隐藏模板?

angularjs - 使用 AngularJS 日期过滤器和 UTC 日期

javascript - AngularJS 过滤深层属性

javascript - 将两个相互关联的菜单从静态转换为动态

javascript - 使用 OAuth 限制移动网页和 native 应用程序对企业网络服务的访问

javascript - Angularjs 检索特定名称/对象

javascript - 对象属性值作为类名,ng-class

javascript - AngularJS新推()'ed item to ngRepeat $Scope doesn' t有效编辑或删除