초기 화면을 만들려면 UI에 변경 사항을 적용하는 데 필요한 서비스 및 기반을 호출해야합니다. 이제 UI에서 응답을 받기 전에 내보기가 렌더링되지 않게하는 것이 좋습니다.angualr2에서 UI 렌더링 제어
UI가 렌더링되지 않도록하고 서비스에서 응답을받은 후에 값을 설정 한 후에 UI에 렌더링을 요청할 수 있습니까?
도움이 매우 좋습니다.
초기 화면을 만들려면 UI에 변경 사항을 적용하는 데 필요한 서비스 및 기반을 호출해야합니다. 이제 UI에서 응답을 받기 전에 내보기가 렌더링되지 않게하는 것이 좋습니다.angualr2에서 UI 렌더링 제어
UI가 렌더링되지 않도록하고 서비스에서 응답을받은 후에 값을 설정 한 후에 UI에 렌더링을 요청할 수 있습니까?
도움이 매우 좋습니다.
lifecycle documentation에서 볼 수 있듯이 ngOnChanges
에서 변경하면 매번 호출되기 때문에 렌더링 전에 연결 고리를 배치 할 방법이 없습니다.
뷰 렌더링이 필요한 이유를 모르겠지만 잘못된 문제입니다. 각도 2는 언제든지보기를 관리 할 수 있기 때문에 *ngIf
, *ngSwitchCase
과 같은 도구를 사용하여 렌더링 한 경우에도 언제든지보기를 수정할 수 있습니다.
로직을 ngOnInit
메서드에 바인딩하고 구성 요소에서 변수를 변경하여 뷰가 데이터를 갖자 마자 즉시 업데이트되도록해야합니다.
<div *ngIf="init">
...
...
...
</div>
을 그리고 약속이 완료되면 다음을 수행 할 수 있습니다 그밖에
당신이 정말 서비스의 약속이 완료되는 경우에만 렌더링 할 뷰를 원한다면, 당신은 *ngIf
A의 구성 요소의 템플릿을 포장 할 수 있습니다 true로 init
을 설정
export class ExampleComponent implements OnInit{
init:boolean=false;
constructor(private service:FooService){}
ngOnInit():void{
service.bar(...).then(() =>
{
...
this.init = true;
...
}
}
}
를 그것은 단지 당신의 intial 화면을 우려하는 경우 유사한 문제에 티에리 Templier answer 보라 : 응용 프로그램을 렌더링하기 전에 비동기 서비스의 응답을 기다리는.
라우터가이 페이지를로드하는 경우 각도 라우터 resolve guard을 사용하여 경로로 대상이되는 구성 요소를 렌더링하기 전에 일부 비동기 호출을 기다릴 수 있습니다.
감사합니다. 서비스 메뉴의 응답에 따라 메뉴 항목을 렌더링합니다. 서비스에서 응답하기 전에 초기에로드가 표시되면 사용자는 올바른보기를 볼 수 없습니다. 예, 응답이 거기에있을 것이고 * ngIf가 그 작업을 수행하면 변경 될 것입니다. 런타임에 메뉴 항목이 변경되면 이상하게 보입니다. 그래서 UI 렌더링 전에 모든 것을 사용할 수 있기를 바랍니다. 네, 해결책이 도움이 될 것입니다. 배터 아이디어가 있다면 알려주세요. 그렇지 않으면이 대답을 받아 들일 것입니다. –
나는 angular2의 목적이 뷰를 다이나믹하게 만드는 것이라고 말했기 때문에 서비스 응답을 기다리는 동안 디자인이 이상하지 않게 디자인을 수정하는 것이 가장 좋습니다. – Supamiu