angular – 直接绑定到服务属性的任何伤害?

前端之家收集整理的这篇文章主要介绍了angular – 直接绑定到服务属性的任何伤害?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
创建服务的方法是否有任何损害,该服务包含我的角度应用程序的某些状态,将该服务注入到状态调节的组件中,然后在其模板中直接绑定到该服务的相应属性

我经常看到主题用于触发组件之间的状态更新,并且想知道是否存在上述方法不起作用且必须使用主题的情况.

我经常发现开发人员没有利用Angular中可用的绑定和更改检测,并且在他们不需要时使用Subjects基本上绕过它.

例如,我在这里有一个完整的主题/行为主题示例:MH-Take3文件夹中的https://github.com/DeborahK/MovieHunter-communication.

然后,我使用MH-Take4文件夹中的简单属性完全相同的功能,没有Subject / BehaviorSubject和相当少的代码.

但是,我建议的一件事是将您的服务属性包装到组件属性中,以便您的模板不需要知道您的服务.这不是必需的,但提供了良好的封装.

例如:

get showImage(): boolean {
    return this.movieParameterService.displayPosters;
}
set showImage(value: boolean) {
    this.movieParameterService.displayPosters = value;
}

我有一个“参数”服务,保留我的一个视图的参数.在这种情况下,它保留用户是否打开或关闭图像的显示.我使用组件中的getter和setter公开service参数.这样,模板绑定到组件,不需要知道服务.

除了封装的基本优点之外,这还使得更容易使用编辑器功能,例如“查找所有引用”,因为它将找到使用该服务的组件.如果唯一的引用是在模板中的字符串中,它将找不到任何引用.

猜你在找的Angularjs相关文章