2014-04-22 2 views
0

작업을 필터링하기 위해 유사하게 코드를 사용하려고했지만 제대로 작동하지 않습니다. 하나 이상의 필터 만 사용하는 경우 (사용중인 필터와 상관없이) 괜찮습니다. 하지만 두 번째 입력으로 필터링하려고하면 그냥 작동하지 않습니다.두 개의 필드로 구성된 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

+0

게시판에 게시 할 수 있습니까? "검색"만 필터링하지만 "sortBy"를 기준으로 정렬하지 않는다는 것을 의미합니까? –

+0

아니, 작품별로 정렬, 검색 필터는 잘 작동하지 않는 필터입니다. 보시다시피 검색으로 필터링 할 두 가지 모델이 있습니다. – mmmm

+0

name_company와 project_name이 같은 레벨에 있도록 모든 속성을 검색 할 수 있습니까? 같이, 검색 개체의 속성? 내가 게시 한 대답은 작동하지 않으면 동일한 레벨의 두 필드를 모두 가져와야합니다. 동일한 객체의 속성은 def가됩니다. 이 문제를 해결하십시오. –

답변

0

시도는 search 개체의 검색 특성을 한 단계 더 추가?

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

또는 이

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

까지 필터를 전환 해보십시오 : 대신

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

사용의

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

하거나 사용자 정의 필터를 작성합니다.

+0

나는 데이터와 검색 필드를 평평하게하기 위해 plunk를 수정했는데 지금은 작동하는 것처럼 보입니다. flattening 당신을위한 옵션인지 모르겠지만, 나는 다중 수준의 필터에서 작동한다고 생각하지 않습니다. 그것은 객체 맵을 기대하며 그것은 그 객체의 모든 프로퍼티와 일치 할 것입니다. http://plnkr.co/edit/vdkfNkgpdLUp9RgZ1IvO –

관련 문제