Angular2 OnInit数据加载太慢导致未定义的TypeError

时间:2017-05-08 03:33:52

标签: javascript angular

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'title' of undefined

我使用了相同的代码来自'英雄'示例在单个路径中加载详细信息对象。我一直收到此错误,因为我认为,在视图已经开始渲染之前未加载数据,这就是我收到此错误的原因。

我有这个问题要显示" currentUser.name"我使用currentUser?.name解决了这个问题,但在这种情况下,使用'?'添加到对象属性的所有位置是没有意义的。

我必须在OnInit上花费更多时间,而不是heroes示例。因为我需要获取更多东西。所以我知道视图只是加载了绑定对象journal

  ngOnInit() {
    this.userService.getUser().then( (user) => {
      this.currentUser = user;
      this.accountsService.getAccounts().then( (accounts) => {
        this.accounts = accounts;
        this.userAccounts = this.currentUser.accounts.map(
          accountId => this.accounts.find(
            elem => elem.id == new String(accountId)
          )
        );
        this.route.params
          .switchMap((params: Params) => this.journalService.getJournal(+params['id']))
          .subscribe( (journal) => {
            console.log("journal", journal);
            this.journal = journal;
          });
        });
      });
  }

如何指示视图在数据开始呈现之前等待数据加载?

或者代码有问题吗?

0 个答案:

没有答案