【发布时间】:2016-02-22 11:12:32
【问题描述】:
学习 Angular 2 并尝试了解何时应该使用组件输入/输出以及何时应该更好地更新服务属性(如果需要更新,可能附加一个 EventEmitter)。
我有一个任务列表,每个列表项都显示了该列表项的各种信息和选项。此列表的工作方式是只有一个列表项处于活动状态,而活动项位于列表顶部。每个列表项的其中一个选项是激活它(如果它尚未激活),但其他组件也可能会更改哪个是活动项。
我有一个父组件task、list 组件和一个list-item 组件(以及一些其他相关组件),此外我还有一个task-service。
主要的taskcomponent 可以使用listcomponent(和something-realted 组件,很多使用的组件需要知道并可能更改activeItemId),像这样:
<list [(active-item-id)]=“activeItemId”></list>
<something-related [(active-item-id)]=“activeItemId”></something-related>
listcomponent 可以这样使用list-item(active 是一个管道,也是项目的一个属性):
<list-item *ngFor=“#item of items | active”
(item)=“item”
[(active-item-id)]=“activeItemId”>
</list-item>
但由于我有一个包含各种相关任务的task-service,我可以在服务上使用已经存在的activeItemId-property(具有事件发射器),并且所有各种任务组件都可以获取信息(并通过此属性进行更新),而不是通过各种组件通过输入/输出来回“发送”该属性。
什么时候只适合这样的事情,什么时候适合使用组件的输入/输出?
【问题讨论】:
标签: angularjs