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

时间:2017-08-23 11:25:37

标签: javascript angular typescript angular2-routing

这时当我登录我的应用程序时,我希望将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'));
    }
}

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

<p> {{ user.first_name }} </p>

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:7)

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

在你的HTML中使用这个:

<p> {{ user?.first_name }} </p>

这称为安全导航操作员,可以防止错误并在填充时呈现first_name

答案 1 :(得分:3)

经过适当的搜索,在这里找到了答案。

Angular2: How to load data before rendering the component?

@Wesley Coetzee,感谢您的支持。