$在Angular 7中是什么意思

时间:2019-01-28 07:09:44

标签: angular angular7

我对变量声明有些困惑。

  

$在英雄中的含义是什么

角度4

export class HeroSearchComponent implements OnInit {
heroes: Observable<Hero[]>;
private searchTerms = new Subject<string>();

constructor(
 private heroSearchService: HeroSearchService,
 private router: Router) {}

Angular 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 ver中有困惑 英雄分配了$变量。

  • 我尝试从var中删除$符号,然后代码不起作用。

  • 任何建议都是最欢迎的

1 个答案:

答案 0 :(得分:5)

这是Observable的约定。 Angular Docs对此的评价如下:

  

由于Angular应用程序大多数是用TypeScript编写的,因此通常您会知道变量何时是可观察的。尽管Angular框架没有对可观察对象强制执行命名约定,但是您经常会看到可观察对象的名称后面带有“ $”符号。

     

这在扫描代码并查找可观察的值时很有用。另外,如果您希望属性存储可观察到的最新值,则可以方便地使用带有或不带有“ $”的相同名称。

不遵循它没有任何危害。但是,由于这是一个建议,因此最好遵循。

更新

公约随着时间的推移而发展,取决于开发人员的过去经验。这个特殊的约定是committed on the 10th of Jan, 2018

是的,这个约定是在Angular 5之后添加到文档中的,很有可能您在Angular 4中工作时没有使用它。

此外,在Angular 5中升级到Rxjs 5.5之后,Rxjs的语法也发生了很大变化(不确定确切的版本)。因此,您可能想检查一下Rxjs的语法是如何随时间变化的。有一个漂亮的工具可以帮助您。检出RxJS Explorer 2.0: Learn. Compare. Update.