Angular2 – 如何在组件之间共享数据/更改
所以我们假设你有一个界面有一个工具栏,边栏和一个网格.工具栏有一个下拉菜单,当用户更改时,侧栏和网格中的内容会更改.回到角度1,我将使用一个服务来拥有我所有的动态数据.当服务发生变化时,使用该服务的所有组件也将更新.
在角度2,看起来人们正在使用不同的方法.我想得到你最喜欢的方式的输入. >静态服务 更新 – 03/09/16 看起来最好的解决方案是Thierry Templier发布的线程:Delegation: EventEmitter or Observable in Angular2 剩下的问题是,如果最好的做法是为组件之间共享的每个数据项创建一个新的服务,或者我们只能有一个服务具有存储所有共享数据的对象. See Plnkr for code Original Plunker Revised Plunker for example
您可以为此使用共享服务.当数据更新时,它可以包含要订阅的数据和可观察数据.
>服务 export class ListService { list1Event: EventEmitter<any> = new EventEmitter(); getLists() { return this.http.get(url).map(res => res.json()) .subscribe( (data) => { this.list1Event.emit(data.list1); } ); } } >组件 @Component({ selector: 'my-component1',template: ` <ul> <li *ngFor="#item of list">{{item.name}}</li> </ul> ` }) export class MyComponent1 { constructor(private service:ListService) { this.service.list1Event.subscribe(data => { this.list = data; }); } } >引导 bootstrap(AppComponent,[ ListService ]); 有关详细信息,请参阅此问题 > Delegation: EventEmitter or Observable in Angular2 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |