【发布时间】:2017-07-25 07:44:46
【问题描述】:
我将服务注入组件。该服务是某种数据寄存器——所有需要的组件数据都在那里。
在组件的模板中使用该服务数据是一种好习惯吗?还是我应该写多个 Observable?
示例:
<my-comp [page]="myService.page" [pageSize]="myService.pageSize"></my-comp>
组件始终绑定到特定服务,不应在其他地方使用。
编辑:另一种方法是在服务中定义新的主题并在组件中订阅它们:
page = new Subject<number>();pageSize = new Subject<number>();
ngOnInit() {
this.page=this.myService.page.subscribe(page=>this.page=page);
this.pageSize=this.myService.pageSize.subscribe(pageSize=>this.pageSize=pageSize);
}
我认为有很多不需要的代码。
【问题讨论】:
-
你还有什么其他想法?
-
除非我弄错了,否则对
myService.page的更改将不会被接收。你最好从服务中发布一个 observable,然后写myService.page | async。就个人而言,我更愿意在组件的ngOnInit中创建一个这个副本,比如this.page = this.myService.page,然后在模板中引用它为page | async。 -
@NikhilRadadiya 帖子已编辑。
-
@torazaburo 更改被拾取。
-
@piernik 我认为第二个更好
标签: angular