过滤对象数组

时间:2014-03-05 15:20:57

标签: arrays angularjs

我有一个格式为

的对象数组(~650)
[1: {firstName: "Hello",
 lastName: "World",
 shortName: "h.world",
...some other items
},
2: {firstName: "John",
 lastName: "Doe",
 shortName: "j.doe",
...some other items
}]

我需要根据文本输入过滤列表,该文本输入应搜索firstName+ " "+lastName。因此,搜索HeHello W将返回Hello World,搜索Hellow将不会返回(案例无关紧要)。过滤阵列的最佳方法是什么?我见过Angulars过滤方法,但我还没有弄清楚如何做到这一点。

编辑我拥有的东西

<div ng-controller="NotesCtrl">
    <p>Search for a user to see there sessions and notes</p>
    <input type="text" id="user" ng-model="search.firstName" />

    {literal}
    <ul>
        <li ng-repeat="u in users | filter:search">{{u.activeDirectoryName}}</li>
    </ul>
    {/literal}
</div>

从我读过的内容应该可行,但列表不会过滤。我是否需要在控制器中执行任何操作才能使其正常工作?

答案:即使在PHP中,我的数据是一个数组,在Javascript中它是一个对象,它改变了一点,所以它作为一个数组出现,它现在似乎正在工作。

1 个答案:

答案 0 :(得分:1)

在您的情况下,search应该是控制器中的一个函数,它接收数组中的每个项目并返回truefalse,具体取决于它是否通过了过滤器。