当前位置: 首页 > 知识库问答 >
问题:

角度2-更新视图/组件

秦跃
2023-03-14

我有一个带有ngOnInit()组件和一个login()方法。

登录完成后,如何更新组件并再次执行Ngonit方法?

ngOnInit() {
    this.loading = true;
    this._guestService.getAllGuests()
        .subscribe(
            guests => this.guests = guests,
            err => console.log(err),
            () => console.log('Request Complete')
         )
}  

login() {
    this.auth.login();
}
logout() {
    this.auth.logout();
}

auth.login服务:

 login() {
   this.lock.show((error: string, profile: Object, id_token: string) => {
     if (error) {
       console.log(error);
     }
     localStorage.setItem('profile', JSON.stringify(profile));
     localStorage.setItem('id_token', id_token);
   });
 }

共有2个答案

公冶安怡
2023-03-14

这是Picci答案的扩展,我将在订阅login()时调用getAllGuests:

 ngOnInit(){
    this.getAllGuests();
    }

    getAllGuests() {
        this.loading = true;
        this._guestService.getAllGuests()
            .subscribe(
                guests => this.guests = guests,
                err => console.log(err),
                () => console.log('Request Complete')
             )
    }  

    login() {
        this.auth.login().subscribe(()=> this.getAllGuests());
    }
    logout() {
        this.auth.logout();
    }
赏育
2023-03-14

我将重命名ngOnInit()类似于getAll客人(),然后从ngOnInit()auth.login()内部调用getAll客人()

如果您不能或不想在auth.login()中插入此调用,我想事情可能会变得更加微妙,需要使用Observable的某种订阅机制,但在启动此路径之前,我会确保您确实需要它。

我希望这能有所帮助

 类似资料:
  • 地图全屏        在LSV中可以实现地图全屏显示效果,提高演示效果。在“视图”菜单栏中“视图角度”栏点击“地图全屏”。全屏效果如下图所示,点击ESC退出全屏。 全球视图        在“视图”菜单栏中“视图角度”栏点击“全球视图”可以迅速切换到全球视图视角。 正北方向        在“视图”菜单栏中“视图角度”栏点击“正北方向”或者双击罗盘可以迅速切换到正北方向视角。 垂直视角    

  • 地图全屏        在LSV中可以实现地图全屏显示效果,提高演示效果。在“视图”菜单栏中“视图角度”栏点击“地图全屏”。全屏效果如下图所示,点击ESC退出全屏。 全球视图        在“视图”菜单栏中“视图角度”栏点击“全球视图”可以迅速切换到全球视图视角。 正北方向        在“视图”菜单栏中“视图角度”栏点击“正北方向”或者双击罗盘可以迅速切换到正北方向视角。 垂直视角    

  • 我有一个父组件和子组件,其中父组件通过@Input修饰符将对象传递给子组件。问题是,子级只获取父级数据一次,然后在将来更改传递给子级的父属性后,不会更新该值。

  • 我的组件具有以下功能: 我可以在我的html页面中插入选择菜单,但更改事件不会在我选择项目时触发。有人能让我知道为什么会发生这种情况吗? 谢谢

  • 问题内容: 我正在使用awesomium制作游戏中的用户界面,有时游戏会加载并执行一段JavaScript,以创建任意新的UI元素。例如 效果很好,当我想创建一些更高级的UI元素(特别是使用angular)时,就会出现问题。例如: 毫不奇怪,这不会创建新的角度视图。它只是将该html添加到文档中,而从未绑定到ChatBoxControl。 我如何才能在这里实现自己的目标? 问题答案: 您应该$ c

  • 我想按照这个答案从角度5迁移到角度6 我试着执行这三个命令,来更新。angular-cli.json到angular.json: 不幸的是,仍然没有angular.json。如果我试图运行< code>ng serve,我会得到以下错误: 所以我改名了。angular-cli.json到angular.json。但这并没有帮助: 架构验证失败,出现以下错误:数据路径“”不应具有其他属性(项目)。错