服务中的数据更改时如何更新标头组件?

时间:2018-11-01 12:52:35

标签: javascript angular

参考:How can I detect service variable change when updated from another component?

当前行为:当标题组件中的变量值更改时,用户登录并且菜单项不会更新。仅在刷新页面时更新。

预期的行为:用户立即登录-隐藏菜单中的某些菜单项。

页眉组件包含菜单并已订阅身份验证服务:

isAuthenticated: boolean = false;

this.items = [
  {
    title: 'Home',
    link: '/',
    home: true,
  },
  {
    title: 'Dashboard',
    link: '/dashboard',
    hidden: !this.isAuthenticated,
  },
]
ngOnInit() {
    this.authService.isAuthenticated().subscribe(res => this.isAuthenticated = res);
}

1 个答案:

答案 0 :(得分:-1)

您应该使用数组过滤器 例如

this.authService.isAuthenticated().subscribe(res=>{
    this.isAuthenticated = res
    res.filter(elem=>{
        this.isAuthenticated = res
    }
} );