Làm cách nào để đợi tải HTML cho đến khi nhận được dữ liệu ở dạng góc?

lập trình


Tôi đã được chuyển hướng đến một trang khác như thế này

this.router.navigate(['prob/telecomnewdeal'], { queryParams:{ 'companyId': this.selectedCompnay, 'domainId':this.domainId } });

trên trang mới

ngOnInit

tôi đang nhận được thông số như thế này

ngOnInit(): void {
   this.route.queryParams.subscribe(params => {
     this.companyId = +params['companyId'];
     this.domainId = +params['domainId'];
   });

và sau đó tôi đang gọi API trong ngOint như thế này

this.telecomDealService.addNewDeal(this.userEmail, false, this.companyId, this.domainId).subscribe((data: TelecomDealList) => {

       this.dealQuestionsList = data.AssginedTowers[0].Questions;
       let test = this.dealQuestionsList[0].IsHeader
       this.addloadded = true;
       console.log(this.addloadded);
       for (var i = 0; i < data.AssginedTowers[0].Questions.length; i++) {
         if (data.AssginedTowers[0].Questions[i].listAnswerOptions != null) {

           this.drpoption = data.AssginedTowers[0].Questions[i].listAnswerOptions;
           this.dealQuestionsList[i].listAnswerOptions = [];
           for (var j = 0; j < Object.entries(this.drpoption).length; j++) {
             let tempfilter: Item;
             tempfilter = {
               text: Object.entries(this.drpoption)[0][0],
               value: Object.entries(this.drpoption)[0][0]
             };

             this.dealQuestionsList[i].listAnswerOptions.push(tempfilter);
           }

         }
       }


       this.spinner.hide();




       });

nhưng HTML của tôi tải dữ liệu trước khi tôi nhận được dữ liệu từ API của mình

cách tải HTML sau khi lấy dữ liệu từ API

Những gì tôi đã thử:

không thể hiểu được khái niệm

Giải pháp 1

Tôi đánh giá cao rằng đây là một câu hỏi cũ hơn nhưng nó rất đáng để giải quyết tại sao lại có vấn đề ở đây. Người đăng đã tuyên bố rằng họ muốn đợi cho đến khi dữ liệu được trả về từ API và sau đó tải HTML của một trang cụ thể. Về mặt kỹ thuật, bạn có thể nghĩ rằng điều này có thể thực hiện được bằng cách thực hiện lệnh gọi truy xuất dữ liệu bằng lệnh gọi đồng bộ chặn, nhưng điều đó là không thể trong ứng dụng JavaScript do đây là hệ thống một luồng. Lệnh gọi API thực chất là một lời hứa nhận dữ liệu từ máy chủ theo phản hồi, sau đó có thể được thực hiện.

Như vậy, bây giờ chúng ta đã biết trang này không đồng bộ, làm cách nào để ẩn nội dung trên trang cho đến khi dữ liệu được trả về. Một cơ chế điển hình là sử dụng một biến được tải, biến này chỉ được đặt thành true khi dữ liệu được trả về. Sau đó, chỉ cần sử dụng ngIf để hiển thị dữ liệu khi được tải là đúng.

コメント

タイトルとURLをコピーしました