创建服务的方法是否有任何损害,该服务包含我的角度应用程序的某些状态,将该服务注入到状态调节的组件中,然后在其模板中直接绑定到该服务的相应属性?
我经常看到主题用于触发组件之间的状态更新,并且想知道是否存在上述方法不起作用且必须使用主题的情况.
我经常发现开发人员没有利用Angular中可用的绑定和更改检测,并且在他们不需要时使用Subjects基本上绕过它.
例如,我在这里有一个完整的主题/行为主题示例:MH-Take3文件夹中的https://github.com/DeborahK/MovieHunter-communication.
然后,我有确切的MH-Take4文件夹使用简单的特性与相同的功能没有主题/ BehaviorSubject和相当少一点的代码.
但是,我建议的一件事是将您的服务属性包装到组件属性中,以便您的模板不需要知道您的服务.这不是必需的,但提供了良好的封装.
例如:
get showImage(): boolean {
return this.movieParameterService.displayPosters;
}
set showImage(value: boolean) {
this.movieParameterService.displayPosters = value;
}
Run Code Online (Sandbox Code Playgroud)
我有一个"参数"服务,保留我的一个视图的参数.在这种情况下,它保留用户是否打开或关闭图像的显示.我使用组件中的getter和setter公开service参数.这样,模板绑定到组件,不需要知道服务.
除了封装的基本优点之外,这还使得更容易使用编辑器功能,例如"查找所有引用",因为它将找到使用该服务的组件.如果唯一的引用是在模板中的字符串中,它将找不到任何引用.
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |