【问题标题】:Angular 8 read boolean value from another component to root componentAngular 8从另一个组件读取布尔值到根组件
【发布时间】:2020-07-26 03:51:54
【问题描述】:

我仍在学习有关 Angular 8 及其工作原理的所有知识。最近有一件事情让我很头疼。我们有两个应用程序区域更改了很多导航菜单选项,我想确保它根据某个值是真还是假而改变。

我已经了解了 @Input 和 @Output 和 Eventemitter,但通常这些内容通常是从组件本身读取的。然而,导航没有从任何组件中读取,并且我们所有的组件都来自路由器插座(我不完全确定它是如何工作的)

本质上 app.component.html 是:

<nav class="app-menu">
 <ul class="this-menu" *ngIf="!isAlt"></ul>
 <ul class="alternate-menu" *ngIf="isAlt"></ul>
</nav>
<div class="container">
  <router-outlet></router-outlet>
</div>

默认情况下 isAlt 将为 false,直到您点击包装在特定容器中的页面,将 isAlt 的值更改为 true。有没有办法做到这一点?

【问题讨论】:

    标签: angular boolean components angular8 eventemitter


    【解决方案1】:

    您可以为您的项目创建状态服务。该服务可以检查您的变量。您可以放置​​一个可观察的状态服务变量。因此,每当您想要的页面被点击时,更新状态变量。这将在状态级别更新变量,状态服务将向所有订阅者发送该组件的值。

    这是状态服务的工作演示: https://stackblitz.com/edit/angular-state-service?file=src%2Fapp%2Fstate.service.ts

    【讨论】:

    • 抱歉回复晚了:我了解这里正在做什么,但是,我不确定如何将它应用于布尔值。仅仅读取 0 或 1、是或否、真或假,这会不会过大?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 2018-02-19
    • 2021-06-27
    • 1970-01-01
    • 2019-12-08
    • 2021-08-30
    • 2020-01-28
    相关资源
    最近更新 更多