Angular 2,如何在ngOnInit()变量中存储值?

par*_*rth 3 javascript typescript angular2-routing angular

在这里,当我登录到我的应用程序时,我希望将json对象存储在本地存储中,然后将其分配给用户Object.第一次,如果我登录它将不会显示任何内容,但如果我刷新页面,我可以看到名字.

这是.ts文件

import { Component, OnInit } from '@angular/core';
@Component({
    selector: 'app-navbar',
    templateUrl: './navbar.component.html',
    styleUrls: ['./navbar.component.css']
})
export class NavbarComponent implements OnInit {
    user: Object;
    ngOnInit() {
    this.user = JSON.parse(localStorage.getItem('user'));
    }
}
Run Code Online (Sandbox Code Playgroud)

在模板中我想像这样使用它:

<p> {{ user.first_name }} </p>
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

Wes*_*zee 7

您的html在设置变量之前呈现

你的html里面用这个:

<p> {{ user?.first_name }} </p>
Run Code Online (Sandbox Code Playgroud)

这称为安全导航操作员,它将防止错误并在first_name填充时进行渲染.