如何在 angular 7 中的组件之间共享一个值

卡维亚B

我的 angular 7 项目中有很多组件。厌倦了在组件之间共享值但不起作用。我在下面给出了我的代码。任何人都知道方法请帮助找到解决方案。

文件夹:我的组件:

app ->

   ->power
   ->air
   ->pollution
   ->wind

power.component.ts:

@Output() public globalValue= new EventEmitter();

ngOnInit(){

 this.globalValue.emit('helloworld');

}

air.component.ts:

@Input() globalValue: string;

ngOnInit(){

console.log(this.globalValue); //Output should be helloworld

}

污染.component.ts:

@Input() globalValue: string;

ngOnInit(){

console.log(this.globalValue); //Output should be helloworld

}

风.component.ts:

@Input() globalValue: string;

ngOnInit(){

console.log(this.globalValue); //Output should be helloworld

}
萨洛

Angular 提供了多种方式让我们可以在组件之间共享值。

https://angular.io/guide/component-interaction

但正如我所见,您希望与多个组件共享。您可以创建一个服务,然后任何组件都可以订阅它并获得价值。

import { Injectable } from '@angular/core';
import { Subject }    from 'rxjs';

@Injectable()
export class GlobalService{

  // Observable string sources
  private globalValueSource = new Subject<string>();


  // Observable string streams
  globalValueAnnounced$ = this.globalValueSource.asObservable();

  // Service message commands
  sendGlobalValue(value: string) {
    this.globalValueSource.next(value);
  }

}

在您的任何组件中,您都可以通过订阅它来获取值,例如:

constructor(private globalService: GlobalService) {
    globalService.globalValueAnnounced$.subscribe(
      value => {
       console.log(value);
      });
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在angular 7中动态传递另一个组件中的组件

如何使用Angular 7从另一个组件访问组件值

Angular:如何在不同模块的不同组件之间共享一个组件,反之亦然

重定向到Angular 7中的另一个组件后如何发送消息?

如何在 Angular 7 中过滤元素

如何在Angular 7的表中添加行组件?

如何在Angular 7应用中设置React组件的样式

如何在Angular 7中获取组件的CSS文件内容?

如何在两个组件之间使用Angular7(角材料)拖放

如何在Angular 2中的模块之间共享组件?

如何在 Angular 2 中的组件之间共享数组?

如何从 Angular8 中的另一个组件传递一个组件的值(独立组件)

如何在angular 7中为formControl设置动态值

如何将表单组数据传递到另一个组件中的“提交”按钮(Angular 7)

如何在Angular 6中仅将一个值从一个组件传递到另一组件?

Angular 7-如何将一个组件与不同模块一起使用

组件之间如何使用Angular 7 cdkDropList?

如何在Angular 7的所有屏幕上保留组件?

如何从登录组件到angular中的另一个组件获取sessionStorage的值

在组件之间共享数据(Angular 7)

如何在此精确代码Angular 2及更高版本中显示另一个组件的值

[Angular 7+]:如何在另一个服务规范中对服务进行单元测试?

如何在一个构建命令中在angular 7项目中构建多个应用程序?

如何在Angular 7中使用反应形式设置“至少应填写一个字段”验证?

在angular2中,我有一个用于两个组件的管道,想知道如何在全局范围内共享它

如何在Angular 7中创建延迟加载Treeview

如何在angular 7中使用goJs TreeModel

如何在 Angular 7 中通过管道/映射返回数组

如何在 angular 7 中向外部 URL 添加渲染?