亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Angular2:如何在渲染組件之前加載數據?

Angular2:如何在渲染組件之前加載數據?

人到中年有點甜 2019-11-22 15:58:31
我正在嘗試在呈現組件之前從我的API加載事件。當前,我正在使用從組件的ngOnInit函數調用的API服務。我的EventRegister組件:import {Component, OnInit, ElementRef} from "angular2/core";import {ApiService} from "../../services/api.service";import {EventModel} from '../../models/EventModel';import {Router, ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig, RouteParams, RouterLink} from 'angular2/router';import {FORM_PROVIDERS, FORM_DIRECTIVES, Control} from 'angular2/common';@Component({    selector: "register",    templateUrl: "/events/register"    // provider array is added in parent component})export class EventRegister implements OnInit {    eventId: string;    ev: EventModel;    constructor(private _apiService: ApiService,                         params: RouteParams) {        this.eventId = params.get('id');    }    fetchEvent(): void {        this._apiService.get.event(this.eventId).then(event => {            this.ev = event;            console.log(event); // Has a value            console.log(this.ev); // Has a value        });    }    ngOnInit() {        this.fetchEvent();        console.log(this.ev); // Has NO value    }}我的EventRegister范本<register>    Hi this sentence is always visible, even if `ev property` is not loaded yet        <div *ngIf="ev">        I should be visible as soon the `ev property` is loaded. Currently I am never shown.        <span>{{event.id }}</span>    </div></register>我的API服務import "rxjs/Rx"import {Http} from "angular2/http";import {Injectable} from "angular2/core";import {EventModel} from '../models/EventModel';在ngOnInit函數中的API調用完成獲取數據之前,將渲染組件。因此,我從沒在視圖模板中看到事件ID。所以看起來這是一個ASYNC問題。我期望ev(EventRegister組件)的綁定ev在設置屬性后會做一些工作。遺憾的是,設置屬性時,它不顯示div帶有標記的*ngIf="ev"。問題:我使用的是好的方法嗎?如果不; 在組件開始渲染之前加載數據的最佳方法是什么?
查看完整描述

3 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

我發現一個不錯的解決方案是在UI上執行以下操作:


<div *ngIf="isDataLoaded">

 ...Your page...

</div

僅當:isDataLoaded為true時,才會呈現頁面。


查看完整回答
反對 回復 2019-11-22
  • 3 回答
  • 0 關注
  • 1595 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號