녹아웃 바인딩이 실행되기 전에 HTML이 표시되는 것을 방지하는 방법
내 Html에서 다음 녹아웃 스크립트를 사용하고 있습니다.
<!-- kno ifnot: bla -->
<tr><td>some stuff</td></tr>
<!-- /ko -->
내가 가진 문제는 바인딩이 실행되기 전에이 행이 1 ~ 2 초 동안 표시된다는 것입니다.
이런 일이 발생하지 않도록하려면 어떻게해야합니까?
여기에 간단한 트릭이 있습니다. 처음에는 루트 요소를 숨기고 보이는 바인딩을 true로 설정하기 만하면됩니다.
<div style="display: none;" data-bind="visible: true">
<!-- the rest of your stuff -->
</div>
렌더링 될 때 녹아웃이 수행되기 전에 처음에는 숨겨집니다. 바인딩이 적용되면 녹아웃이 스타일을 무시하고 보이게 만듭니다.
또는보기를 스크립트 블록에 넣고 템플릿을 통해 인스턴스화 할 수 있습니다. 스크립트 블록은 렌더링되지 않지만 녹아웃이 템플릿을 렌더링 할 때 표시됩니다.
<!-- ko template: 'myView' --><!-- /ko -->
<script id="myView" type="text/html">
<!-- the rest of your stuff -->
</script>
원하는 동작은 페이지마다 다르기 때문에 레이아웃 / 템플릿 파일 (ASP.NET)에서 수행하는 작업입니다.
<div class="ko-unbound" data-bind="css: { 'ko-unbound': false, 'ko-bound': true }">
@RenderBody()
</div>
페이지가 바인딩 된 경우 :
ko-unbound
클래스가 페이지에서 제거됩니다 (처음에는class
속성으로 추가됨 ).ko-bound
클래스가 페이지에 추가됩니다.
그런 다음 원치 않는 콘텐츠가 문제가되는 페이지에서이 두 클래스를 기반으로 사물을 표시하거나 숨기도록 CSS를 사용자 지정할 수 있습니다. 또한이 기술을 사용하여 '로딩'이미지를 표시하거나 요소에 최소 높이를 부과합니다.
.ko-unbound #storeWizard
{
display: none; // hide entire section when the page is binding
}
.ko-bound #loadingGraphic
{
display: none; // hide loading graphic after page is bound
}
테스트 중에 바인딩을 적용 할 때 플래시를 볼 수 있도록 타임 아웃을 추가합니다.
setTimeout(function ()
{
ko.applyBindings(RR.VM);
}, 300);
다음과 같이 HTML을 감싸십시오.
<div id="hideme" style="display:none">
</div>
그런 다음 JavaScript에서 바인딩 적용 뒤에 다음 jquery 줄을 추가하십시오.
$('#hideme').show();
이것은 내가 찾은 가장 간단한 방법입니다. 일부 녹아웃 바인딩으로이를 수행 할 수 있지만 순서 바인딩이 실행되는 것을 제어 할 수 없기 때문에 보장 된 타이밍을 잃게됩니다.
여기 에서 찾은 또 다른 솔루션
<div id="binding-start" style="visibility:hidden" data-bind="attr: { 'style': 'visibility:visible' }" />
This has the advantage - or disadvantage, depending on your needs - that space will be reserved for the hidden content. The page will not "jump" when the bindings are applied.
'Program Tip' 카테고리의 다른 글
Symfony 2에서 모든 요청 매개 변수 얻기 (0) | 2020.11.13 |
---|---|
htaccess를 사용하여 HTTP에서 http로 리디렉션 (0) | 2020.11.13 |
간단한 "Hello World"는 64 비트 컴퓨터에서 10G 가상 메모리가 필요하고 32 비트에서는 1G가 필요합니까? (0) | 2020.11.13 |
Nodemon-파일 제외 (0) | 2020.11.13 |
Hibernate, iBatis, Java EE 또는 기타 Java ORM 도구 (0) | 2020.11.13 |