栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在不刷新整页的情况下更新组件-Angular

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在不刷新整页的情况下更新组件-Angular

您可以使用

BehaviorSubject
来在整个应用程序的不同组件之间进行通信。您可以定义一个数据共享服务,其中包含
BehaviorSubject
您可以订阅和发出更改的服务。

定义数据共享服务

import { Injectable } from '@angular/core';import { BehaviorSubject } from 'rxjs';@Injectable()export class DataSharingService {    public isUserLoggedIn: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);}

DataSharingService
在您的
AppModule
提供商条目中添加。

接下来,将导入到

DataSharingService
<app-header>
和您在其中执行登录操作的组件中。在
<app-header>
订阅
isUserLoggedIn
主题更改中:

import { DataSharingService } from './data-sharing.service';export class AppHeaderComponent {     // Define a variable to use for showing/hiding the Login button    isUserLoggedIn: boolean;    constructor(private dataSharingService: DataSharingService) {        // Subscribe here, this will automatically update         // "isUserLoggedIn" whenever a change to the subject is made.        this.dataSharingService.isUserLoggedIn.subscribe( value => { this.isUserLoggedIn = value;        });    }}

在您的

<app-header>
html模板中,您需要添加
*ngIf
条件,例如:

<button *ngIf="!isUserLoggedIn">Login</button> <button *ngIf="isUserLoggedIn">Sign Out</button>

最后,您只需要在用户登录后发出事件,例如:

someMethodThatPerformsUserLogin() {    // Some pre     // .....    // After the user has logged in, emit the behavior subject changes.    this.dataSharingService.isUserLoggedIn.next(true);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/442273.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号