我在变量声明中有些困惑。
$在英雄中是什么意思$
角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);
}
我在角度7版本中对英雄分配$变量感到困惑。
我试图从var中删除$符号,然后代码不起作用。
任何建议都是最欢迎的
这是Observables遵循的约定。这是Angular Docs必须说的:
由于Angular应用程序大多数是用TypeScript编写的,因此通常您会知道变量何时是可观察的。尽管Angular框架没有对可观察对象强制执行命名约定,但是您经常会看到可观察对象以尾随“ $”符号命名。
这在扫描代码并查找可观察的值时很有用。同样,如果您希望属性存储可观察到的最新值,则可以方便地使用带有或不带有“ $”的相同名称。
不遵循它没有任何危害。但是,由于这是一个建议,因此最好遵循。
约定会随着时间的推移而发展,具体取决于开发人员的过去经验。该特别会议于2018年1月10日生效
是的,这个约定是在Angular 5之后添加到文档中的,很有可能您在Angular 4中工作时没有使用它。
此外,在Angular 5中升级到Rxjs 5.5后,Rxjs的语法也发生了显着变化(不确定确切的版本)。因此,您可能想检查一下Rxjs的语法是如何随时间变化的。有一个漂亮的工具可以帮助您。查看RxJS Explorer 2.0:学习。比较。更新。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句