2015-01-13 15 views
0

샘플 응용 프로그램은 http://jsfiddle.net/qvkyrg7k/8/입니다. 왜 내가 $ rootScope : infdig를 얻습니까?

기본적으로 검색 용어로 필터링 한 다음 속성을 기반으로 그룹화하여 트리처럼 표시 할 수 있습니다.

문제가있는 줄은

<tr ng-repeat-start="(family, members) in data | filter:search | groupByFamily"> 
+0

두 개의 필터를 사용할 수 있다는 것을 알고 계시 겠지만 사용자 정의 필터를 사용하십시오 그것을 그룹 짓기. –

+0

그룹을 적게 사용하기 때문에이 방법은 훨씬 빠릅니다. 첫 번째 필터는 결과 목록을 만들 때 사용자 지정 필터가 사용할 새 목록을 만들 것이므로 빠릅니다. 그러나 그것은 더 깨끗합니다. – IttayD

+0

@IttayD 문제를 재현하기 위해 [이 바이올린] (http://jsfiddle.net/qvkyrg7k/)을 수정할 수 있습니까? – Grundy

답변

0

은 이성과 트랙 https://github.com/angular/angular.js/issues/10738 참조입니다. 기본적으로 ngRepeat는 $ watchCollection을 사용하여 파이프의 결과를 감시합니다. groupByFamily가 실행될 때마다 새로운 배열을 생성하기 때문에 angular는 전체 모델이 변경된 것으로 생각하고 groupByFamily가 다시 실행되도록 다시 렌더링을 트리거합니다.

+0

하지만 배열의 요소가 프리미티브이면'[1,2,3]'처럼 - 모든 것이 작동합니다 – Grundy

관련 문제