angular - Angular 是在组件之间重用服务的好习惯
问题描述
我有一个服务:
export class LangService {
public test = "hi";
}
父组件:
import {LangService} from "./services/lang.service";
export class ParentComponent {
constructor(private _lang: LangService) {
_lang.test = "bye";
}
}
还有一个子组件:
import {LangService} from "./services/lang.service";
export class ChildComponent {
constructor(private _lang: LangService) {
console.log(_lang.test); //Here is printing "bye" and not "hi" exactly as I'm expecting
}
}
两个组件都使用我的LangService的同一个实例
我已经读过要进行正确的组件交互,Angular 文档提出了一些方法,其中之一是使用服务进行通信并订阅服务的可观察对象
我的问题是。仅使用服务的变量而不是服务的订阅者来通信组件是一种好习惯吗?
解决方案
这不像您选择Observable
或任何Subject
(然后订阅它们)而不是使用普通变量。
当您通过先前订阅服务从服务中获得一些价值并观察您期望该价值会随着时间或某些操作而变化时,您会注意到它。这是更好的方法,而不是通过例如手动签入组件。10 秒或点击按钮后。
推荐阅读
- ios - 如何从 appstoreconnect for iOS 应用程序中删除 macOS 应用程序页面版本
- android - Android Studio:添加 Google Places 依赖项失败
- r - 一起使用丛集和 kmeans 函数的问题 (R)
- android - CameraX 录制的视频分析图形错误
- python-3.x - Python中的客户细分
- c++ - 为什么我不能将类的对象插入到多重集中?
- java - java Spring如何从接口继承内置方法?
- c - C 内核因浮点数而疯狂
- go - 如何命名这些 Google Protobuf 字段,以便我可以在 GoLang 中使用它们来接受特定的 JSON?
- html - ReactJS - 反应选择 - 多种文本颜色