2017-05-06 5 views
0

require와 함께로드 된 async 템플릿을 사용하여 knockout 데이터 바인딩 된 맞춤 구성 요소 목록을 중심으로 owlCarousel을 사용합니다. 설치가 작동하려면 모든 DOM 요소가 렌더링 된 후 회전식 개체를 초기화해야합니다. setTimeout 함수는 작동하지 않는 옵션입니다. 녹아웃이 모든 비동기 DOM 조작을 완료했을 때 알림을받을 일종의 이벤트가 있습니까?KnockoutJS의 owl-carousel을 사용한 비동기 템플릿

답변

0

foreach 바인딩의 afterRender 콜백을 사용할 수 있습니다. 이 KO의 문서 페이지의 "afterRender"에 대한 검색 : afterRender 당신은 아마이 것 때문에, 목록에서 항목이 렌더링 될 때마다 호출되는

http://knockoutjs.com/documentation/foreach-binding.html

은 몇 가지 계산을 수행하는 약간의 코드를 작성하는 viewmodel을 사용하여 목록에서 마지막 항목을 눌렀을 때를 알면 그 다음에 컨베이어를 초기화 할 수 있습니다. 수퍼 클린은 아니지만 임의의 지연 및 가능한 경쟁 조건을 처리 할 수있는 setTimeout 접근 방식보다 확실히 좋습니다.

또 다른 옵션은 캐 러셀에 대한 사용자 지정 녹아웃 바인딩을 작성하는 것입니다. 이게 가장 깨끗한 접근법이고 재사용 할 수있을 것 같습니다. 똑같은 필요를 가진 사람이 적어도 한 명있는 것처럼 보입니다. 당신은 유용한 GitHub의에 바인딩 자신의 정의를 찾을 수 있습니다 :

https://github.com/Crunc/knockout-owlCarousel

나는 그래서 그것을 귀하의 요구에 딱 맞는 확인할 수 없습니다 전에이 바인딩 함께 일하지 않은,하지만 당신을위한 좋은 출발점이 될 수있다 .