AngularJS过滤两个字段

时间:2014-04-22 12:26:36

标签: javascript angularjs

我试图使用类似的代码来过滤我的任务,但它没有正常工作。如果我只使用一个过滤器而不是它(无论我使用哪个过滤器)。但是当我尝试通过第二次输入进行过滤时,它就无法工作。

此外:当我从第一个输入中删除字符串并尝试按秒进行过滤时,它根本不起作用。

<div>
    Filters: <br />
    Company: <input ng-model="search.project.company.name_company"> <br />
    project: <input ng-model="search.project.project_name"> <br />
</div>
<table>
    <th>Lp.</th>
    <th ><a href="" ng-click="sortBy='project.company.name_company'">Company</a></th>
    <th><a href="" ng-click="sortBy='project.project_name'">project</a></th>
    <th><a href="" ng-click="sortBy='time_start'">Time start</a></th>
    <th><a href="" ng-click="sortBy='time_stop'">Time stop</a></th>
    <th><a href="" ng-click="sortBy='time_start-time_stop'">Work time</a></th>
    <tr ng-repeat="task in tasks | filter:search | orderBy:sortBy " class="thumbnail">
        <td >{[{ $index+1 }]}</td>
        <td >{[{ task.project.company.name_company }]}</td>
        <td >{[{ task.project.project_name }]}</td>
        <td >{[{ task.time_start | date : 'y-MM-dd HH:mm' }]}</td>
        <td >{[{ task.time_stop | date : 'y-MM-dd HH:mm' }]}</td>
        <td>{[{ timediff(task.time_start,task.time_stop) }]} godzin</td>
        <td><button ng-click="edit(task)">Edit</button></td>
        <td><button ng-click="delete(task)">Delete</button></td>
    </tr>
</table>

编辑:Plunker - http://plnkr.co/edit/vdkfNkgpdLUp9RgZ1IvO?p=preview

1 个答案:

答案 0 :(得分:0)

尝试在search对象上添加一级更高的搜索属性?而不是

<input ng-model="search.project.company.name_company"> <br />
    project: <input ng-model="search.project.project_name"> <br />

使用:

<input ng-model="search.company.name_company"> <br />
    project: <input ng-model="search.project_name"> <br />

OR 尝试从

切换过滤器
<tr ng-repeat="task in tasks | filter:search | orderBy:sortBy " class="thumbnail">

为:

<tr ng-repeat="task in tasks | filter:search.project | orderBy:sortBy " class="thumbnail">

或者只是编写自定义过滤器。