我在变量声明中有些混淆。
在英雄中$意味着什么?
角4
export class HeroSearchComponent implements OnInit {
heroes: Observable<Hero[]>;
private searchTerms = new Subject<string>();
constructor(
private heroSearchService: HeroSearchService,
private router: Router) {}角7+
export class HeroSearchComponent implements OnInit {
heroes$: Observable<Hero[]>;
private searchTerms = new Subject<string>();
constructor(private heroService: HeroService) {}
// Push a search term into the observable stream.
search(term: string): void {
console.log(term);
this.searchTerms.next(term);
}发布于 2019-01-28 07:13:32
这是为观察对象而举行的一次会议。以下是Angular Docs对此的看法:
因为角应用程序大多是用TypeScript编写的,所以您通常会知道变量何时是可观测的。虽然角框架不强制对可观测点的命名约定,但经常会看到带有尾随“$”号的可观测值。 这在扫描代码和寻找可观察的值时非常有用。此外,如果您希望属性存储可观察到的最新值,那么使用相同的名称与“$”或不使用“$”是很方便的。
不遵循这样的原则是没有坏处的。但既然这是一个建议,它是很好的遵循。
更新
根据开发人员过去的经验,约定会随着时间的推移而发展。这个特别的约定是committed on the 10th of Jan, 2018
所以是的,这个约定是在角度5之后添加到Docs中的,很有可能你在角度4工作时没有使用它。
另外,Rxjs的语法在Rxjs5.5的角5升级之后也发生了很大变化(不确定确切的版本)。因此,您可能需要检查Rxjs的语法随时间的变化。有个很棒的工具可以帮你。查看: Learn. Compare. Update.
https://stackoverflow.com/questions/54397064
复制相似问题