代码之家  ›  专栏  ›  技术社区  ›  afeef

角度7的$是什么意思?

  •  2
  • afeef  · 技术社区  · 7 年前

    我在变量声明中有一些混淆。

    在英雄中,$是什么意思?$

    角度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上有困惑在哪里 英雄被分配$variable。

    • 我试图从var中删除$symbol,但代码不起作用。

    • 任何建议都是最受欢迎的

    1 回复  |  直到 7 年前
        1
  •  5
  •   SiddAjmera    7 年前

    这是一个为观察而遵循的惯例。这里是什么 Angular Docs 不得不说:

    因为角应用程序大部分是用打字机编写的,所以您通常知道什么时候变量是可观测的。虽然角度框架不强制对可观测项使用命名约定,但您经常会看到以尾随的__$226;_符号命名的可观测项。

    这在扫描代码和查找可观察值时很有用。此外,如果您希望某个属性存储可观察到的最新值,则可以方便地使用相同的名称,包括或不包括__$226;_。

    不这样做没有坏处。但既然这是一个建议,那么遵循它是很好的。

    更新

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

    所以是的,这个约定是在Angular5之后添加到文档中的,在Angular4中工作时很可能没有使用它。

    此外,在Angular5中升级到RXJS5.5之后,RXJS的语法也发生了显著变化(不确定确切的版本)。因此,您可能需要检查RXJS的语法是如何随时间变化的。有一个很好的工具可以帮助你。退房 RxJS Explorer 2.0 : Learn. Compare. Update.

    推荐文章