1
동적으로로드되는 녹아웃 구성 요소를 사용하는 SPA가 있습니다. 여기 녹아웃 3.2 - AMD로드 된 구성 요소 간의 'if'기반 전환
는 현재 <!-- ko if: state() === 'one' -->
<component-one></component-one>
<!-- /ko -->
<!-- ko if: state() === 'two' -->
<component-two></component-two>
<!-- /ko -->
<!-- ko if: state() === 'three' -->
<component-three params="myParam: MyParam()"></component-three>
<!-- /ko -->
<!-- ko if: state() === 'four' -->
<component-four></component-four>
<!-- /ko -->
모습입니다 내가 찾고 가상 요소 바인딩 if
와 동일한 결과를 생성 뭔가뿐만 아니라,/나를 전환 (페이드 배치 할 수 있습니다 아웃).
나는 녹아웃 2.1에서는 작동하지만 3.2에서는 작동하지 않는 것으로 보이는 http://jsfiddle.net/rniemeyer/kNtdu/과 같은 것을 발견했습니다.
참고 : fadeVisible
은 아니지만 fadeIf
줄을 더 많이 찾습니다.
도움 주셔서 감사합니다.
이 나를 위해 완벽하게 작동 : http://jsfiddle.net/mbest/6tpn5uhy/
여기
fadeOut
를 사용하지 않는 간단한 버전입니다. 당신의 도움을 주셔서 감사합니다. 대답의 스 니펫 끝에있는 allowedBindings.ifSliding 대신 allowedBindings.ifFading을 읽어야합니다. templateClone.delay (400) .fadeIn();에 지연을 추가했습니다. 겹쳐지는 요소들을 멈추기 위해서. – Dom개선 사항 - 필자는 필요할 때 구성 요소를 가져 오는 requirejs를 사용하므로 구성 요소의 첫 번째로드에는 구성 요소가로드되기 전에 요소가 사라져 약간의 대기 시간을 갖기 때문에 구성 요소가 팝업됩니다. 자식 요소가 완전히 바인딩 된 후에? – Dom
이 바인딩이 구성 요소가로드 된시기를 알 수있는 방법이 없습니다. 대신, 컴포넌트 템플리트 내에 fade-in 로직을 포함하거나 컴포넌트를 사전로드해야합니다. –