首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Angular2中的组件之间共享数据

如何在Angular2中的组件之间共享数据
EN

Stack Overflow用户
提问于 2017-08-22 22:13:33
回答 2查看 279关注 0票数 2

在这个场景中,我有3个组件,即组件-1,组件-2,组件-3。Component-2和component-3驻留在Component-1中,我想在单击component-2中的按钮后将数据发送到Component-3。提前感谢

EN

回答 2

Stack Overflow用户

发布于 2017-08-22 22:17:14

您可以使用Angular 2/4中提供的@Input和@Output修饰器方法来实现这一点。

这些都非常容易使用。只需将共享数据保留在组件1上,并将该数据与组件2和组件3进行双向绑定。确保在组件2或组件3中的任何一个数据发生更改时触发更改事件。

代码语言:javascript
复制
//for example component 1
@Component({ ... })

export class Component1{
  private data: Data = "some data";
}

//component 2 and 3
@Component({ ... })

export class Component2{

  @Input() data: Data = "some data";
  @Output() dataChange: EventEmitter ...
  
  ngOnChanges(){
    this.dataChange.emit(this.data);
  }
}
代码语言:javascript
复制
<component1>
<component2 [(data)]="data"></component2>
<component3 [(data)]="data"></component3>
</component1>

票数 2
EN

Stack Overflow用户

发布于 2017-08-22 22:38:51

使用服务在组件之间共享数据。

服务

代码语言:javascript
复制
 export class MyService {
     public someVariable: string = ""
     // .....
 }

组件1(打字)

代码语言:javascript
复制
 import { MyService } from "./myService.service"
 // ......
 constructor(public ms: MyService) {}

 setValue(val){
     this.ms.someVariable = "Hello!" // Alter the variable in the service
 }

组件2(打字)

代码语言:javascript
复制
 import { MyService } from "./myService.service"
 // ......
 constructor(public ms: MyService) {}

组件2 (HTML)

代码语言:javascript
复制
 <h1>{{ ms.someVariable }}</h1>  <---- Will print Hello! in your HTML markup
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45820062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档