부트 스트랩 셀렉트 피커는 원래 셀렉트를 숨기고 셀렉트의 옵션으로 셀을 채우는 추가 요소를 생성합니다. 그러나 ngOptions를 사용할 때 selectpicker는 자동으로 업데이트되지 않습니다. AngularJS에서 재진입을 피하는 방법은 무엇입니까?
그래서 나는 ngOptions 수집 변화를 수신하고 더 필터링 ngOptions 적용되지 않는 경우 그것은 잘 작동element.selectpicker()
를 호출하는 지침을 만들었습니다. 그렇지 않으면 filering 함수는 $ watch 콜백이 실행되어 selectpicker를 다시 만드는 원인이 될 때마다 새로운 배열을 반환합니다. 각도 감지 DOM이 변경되어 새로운 다이제스트주기가 무한히 반복되어 프로세스가 반복됩니다. 10 회 반복 후 예상대로 Angular가 예외를 throw합니다.
selectpicker를 만들 때 시계에서 일시적으로 구독을 취소하고 이후에 구독주기가 완료되면 다시 구독해야합니다. 가능한가?
갱신 1
Thougt 조금 더 지금 시도 할 수있는 아이디어가있다. 필터는 필터링 함수를 반환하는 팩토리를 정의하므로 캡처 된 배열을 사용하여 필터링 된 내용을 저장할 수 있습니다. 참조는 변경되지 않으므로 컬렉션 내용이 변경 될 때만 리스너가 실행됩니다.
나는 이것이 당신의 질문에 대한 답이 아니라는 것을 알고있다. 그러나 당신은 항상 당신의 드롭 다운을위한 커스텀 라우트로 가서 문제를 피할 수있다. 다시, 부끄러워하지 말라. : //matterickson.me/dropdowns_selectboxes/ – Mutmatt