2013-04-09 4 views
12

초기화 할 때 외부 소스의 데이터를 $rootScope에로드해야합니다. 데이터는 외부 소스에서 가져온 것이므로 데이터를로드하는 데 필요한 시간은 보장되지 않습니다. 데이터가 성공적으로로드 된 후에야 뷰의 렌더링을 지연하고 싶습니다. 이것을 달성 할 수있는 방법이 있습니까?외부 소스에서 일부 데이터가로드 될 때까지 뷰 렌더링을 연기 할 수 있습니까?

이 앱에는 각도 라우팅을 사용하지 않습니다. 여기

가 비동기 작업이 경로 리졸를 사용하지 않고 완료 될 때까지 렌더링에서보기를 방지하기 위해 깨끗한 방법은 아니지만, 같은 일을 할 수있는 사용자 정의 지시어를 프로그램 할 수있는 simplified demo

+0

왜'$ http'를 사용하지 않습니까? 우리는 대답할만한 정보가 더 필요합니다. –

+0

@ JoshDavidMiller - $ http를 사용하고 있습니다. 제공된 예제 코드에서 $ http $ timeout을 $로 대체했기 때문에 긴 지연을 에뮬레이션하여 후기 바인딩 효과를 표시 할 수 있습니다. 다른 정보가 무엇인지 알려주세요. 귀하의 질문에 나를 때려. 감사. – tamakisquare

+0

'ng-show'와'ng-show'를 함께 사용하여 원하는 결과를 얻을 수도 있습니다. – callmekatootie

답변

13

입니다. 이 사용자 경험에 대한 엄격 경우

그러나, 다음 ngShow가 거침없이 작동합니다 사용 :

여기
<div ng-show="user.name"> 
    <!-- content won't be visible until data is set --> 
</div> 

이 업데이트 Plunker입니다 : 나를 위해 http://plnkr.co/edit/MXoQNWHvyp9aOXg0QOoC?p=preview

+0

init' 나는이를 업데이 트와 ngCloak 지금 이런 종류의 문제를 해결할 수 있다고 말할 것이다 : 여기에 참조하십시오 : https://docs.angularjs.org/api/ng/directive/ngCloak 더 ngShow이 – DAG

+2

을 필요로하지를 @ DanielGroh 초기 페이지로드에서 작동 할 수도 있지만, 페이지로드 사이에 * 작동하지 않을 것이라고 생각합니다. –

+0

당신이 정확합니다. 이것을 지적 해 주셔서 고맙습니다. – DAG

0

, 그것은 UI 단순히 문제가 아니었다 깜박임. 렌더링 전에 데이터가로드되지 않았으므로 부트 스트랩 선택에서 관련 데이터 값을 선택하지 않았습니다. 나는 아래,에 "NG를-경우"배치 용기에 선택 드롭 다운을 포장하여 문제를 해결할 수 있었다 :

<div class='bootstrap-select-dropdown-wrapper' ng-if='listofthings.length > 0'>...</div> 

는 희망이 비슷한 문제 (메모와 함께 붙어 사람을 도움이 : 나는 또한했습니다 내 프로젝트에 nya-bootstrap-select 모듈을 통합했습니다. - bower install nya-bootstrap-select)

관련 문제