2013-10-31 4 views
0

각도의 필터는 tutorial example에서 정상적으로 작동하지만 발행 날짜 대신 미리보기 대신 날짜 필터를 추가하려고한다고 가정 해 봅시다. 코드는 다음과 같습니다.각도의 DOM 값 필터링

<ul class="phones"> 
    <li ng-repeat="phone in phones | filter:query"> 
     {{phone.name}} 
     <p>{{phone.releaseDate | date:'medium'}}</p> 
    </li> 
    </ul> 

전화 개체의 기본 데이터 대신 DOM 값을 기준으로 필터링 할 수있는 방법이 있습니까? 필터링 된 릴리스 날짜는 사용자가 실제 데이터보다 훨씬 쉽게 검색 할 수 있습니다.

+0

이 당신이 원하는 값을 대상으로 자신의 필터를 만듭니다. http://docs.angularjs.org/guide/dev_guide.templates.filters.creating_filters –

+0

자신 만의 필터를 만들어야합니다. http://docs.angularjs.org/guide/dev_guide.templates.filters.creating_filters –

답변

1

필터는 특정 이름 규칙과 형식의 서비스입니다. 각 서비스에서

데이터 & 상태 (더 드물게 DOM 조작에 사용하지 않음)

그래서 단지 모델 데이터에 대한 작업을 필터링 할 책임이 있습니다. 물론 DOM (각도의 지시어의 책임)을 조작하는 필터를 만들 수는 있지만 각도적인 방법은 아닙니다.

그래서 문제를 해결하려면 dom이 아니라 모델 데이터를 조작해야합니다.

내가 이런 짓을 했을까 방법에 plunker을 만들었습니다

http://plnkr.co/edit/uol9GQjUsEIN42JzLIC9?p=preview

+0

필자는 필터를 사용하는 요령이 데이터를 포맷하는 것이라고 생각했습니다. 이제 필터의 책임을 모델로 푸시하고 있습니다. 이것은 각도 방식입니까? 필자는 필터가 지시문이나 뷰에 사용되었다고 생각했습니다. 적어도 가이드의 모든 설명서는 뷰/지시문에서만 필터를 사용하는 것을 가리 킵니다. – user140550

+0

서비스에서도 필터를 사용할 수 있습니다. 나는 필터가 서비스라고 말했다. 서비스의 날짜 필터를 사용하여 날짜의 서식을 지정합니다. 나 자신의 서비스를 작성하여 날짜 형식을 지정할 수 있습니다. 대신 나는 모난 날짜 필터를 사용하고 그것을 사용했습니다. 문제는 검색 필터의 구현입니다. 단순히 제공 한 데이터를 비교합니다. 그래서 내가 생각했던 가장 쉬운 방법은이 데이터를 변경하는 것이 었습니다. 자체 쿼리 필터를 구현하려면 더 많은 노력이 필요합니다. – bekite

+0

나는 접근 방식이 좋아 완벽하게 작동한다. 필터에 대해 읽은 모든 것은 뷰에서 사용된다는 것인데 컨트롤러 나 서비스에서 사용하는 것이 여전히 각도감있는 방법이라고 생각합니다. 당신에게 감사합니다. – user140550

0

thx alot Chandermani는 나를 새 것으로 가르치고 나를 통해 치명적인 오류를 지적했습니다.

그리고 OP의 경우 대답은 NO입니다. (두 번째를 읽은 후 이제 질문을 이해합니다)

각도는 자체 데이터에서만 "작동"할 수 있으며 모든 데이터를 계산 한 후에 렌더링하고 DOM을 생성하므로 항상 필터를 만들 수 있습니다 of 지시문을 DOM 쿼리 및 각 obj, 해당 데이터를 설정하려면 매우 잘못된 해결 방법이 될 것입니다.

은 각 사용의 요점은 MVC 패턴을 사용하고 있음을 기억 ...

+4

date 각도 필터입니다. – Chandermani

+0

내 서버는 1970 년 이래로 밀리 초 단위로 날짜를 반환합니다. 사용자에게 밀리 초 단위로 검색한다는 각도를 알려야합니까? 내 고객을 대하는 적대적인 방법. – user140550

+0

귀하의 댓글 user140550을 (를) 이해할 수 없습니다.이 또 다른 질문입니까? – bresleveloper