首页 > 解决方案 > 使用 Angular 6 解析时打印的变量未定义

问题描述

我有一个页面初始化加载一个大对象锦标赛:

ngOnInit() {
    this.navbar.setLoading(true);
    this.tournamentService.getTournament(this.slug)
      .subscribe(tournament => {
        this.data = tournament;
        localStorage.setItem('tournament', JSON.stringify(tournament));
        this.navbar.setLoading(false);
      }, err => {
        this.navbar.setLoading(false);
      });
    this.navbar.setLoading(false);
  }

在我的 HTML 中,我有很多关于在数据不可访问时会失败的锦标赛的参考。我该怎么做才能避免这种情况?

我已经尝试过使用?运算符,但我不喜欢将它放在任何地方,并且在以下表达式中使用时会失败:[(ngModel)]="data.tournament"

我试图禁用基于布尔值loading的渲染:

<div class="container-fluid" *ngIf="data">

但我得到一个ExpressionChangedAfterItHasBeenCheckedError

那么,我应该怎么做才能在加载数据时不出现这些错误?

标签: angular

解决方案


推荐阅读