Joh*_*den 2 components boolean angular
在一个组件上,我有触发功能的按钮:
<button (click)="open Popup(); hideButton()"></button>
Run Code Online (Sandbox Code Playgroud)
我有,可以说:buttonService我应该用于这两个组件之间的连接。
在第二个组件(与第一个组件不相关的父子组件)中,我有多个这样的按钮:
<button class="element1"></button>
<button [class.hiddenClass]="hideButt" class="element2"></button>
<button class="element3"></button>
Run Code Online (Sandbox Code Playgroud)
第二个组件是弹出窗口,在第一个组件单击相同按钮时打开,此时它还应该触发hideButton()函数将布尔值“true”传递给hideButt并隐藏第二个(弹出)组件上的按钮。我该怎么做?与订阅,Observable,EventEmitter?
小智 5
您可能会发现 rxjs 主题很有用。它非常适合与服务进行跨组件通信。在您的服务类中添加属性:
public buttonClick = new Subject<boolean>()
Run Code Online (Sandbox Code Playgroud)
然后在要从中发送数据的组件中,联系服务并对其调用 next()
this.myservice.buttonClick.next (true)
Run Code Online (Sandbox Code Playgroud)
然后您可以从任何其他组件订阅您的主题
this.myservice.buttonClick.subscribe (data => data)
Run Code Online (Sandbox Code Playgroud)
每当您下次调用时,任何订阅都将从任何组件接收您的新数据。
此外,行为主体是会发出初始值的主体
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
12378 次 |
| 最近记录: |