首页 > 解决方案 > Angular 是个好习惯吗

问题描述

我正在制作一个中等规模的应用程序,我想知道我的数据绑定实践。我以这种方式将数据直接从服务传递到模板:

      <ion-list class="list-preview ion-padding padding-top-0" lines="none" *ngIf="caseService.activeCase.value.values">
        <ion-item *ngFor="let caseItem of caseService.activeCase.value.getValues()">
          <div>
            <ion-note class="ion-float-left">{{ caseItem.label }}</ion-note>
            <ion-text class="ion-float-left">{{ caseItem.value }}</ion-text>
          </div>
        </ion-item>
      </ion-list>

一些教程/应用程序有不同的方法来制作它。通常通过订阅组件中的服务,然后将结果分配给组件变量,这种方式是:

cases = [];
  constructor(
              public caseService: CasesService) {
  }

  ngOnInit(): void {
    this.caseService.getStructure().subscribe(cases => this.cases = cases);
  }

你怎么看?一些道具,缺点?

标签: angularionic-frameworkbindingangular2-services

解决方案


推荐代表订阅并将值返回给局部变量的原因是,如果您将函数调用添加到 HTML 模板,角度必须以这种方式检查函数的返回值,从而对函数本身进行多次调用。由于 Angular 检查函数的返回值,因此触发了整个更改检测生命周期。如果不在模板中使用函数调用而只使用变量 Angular 不必调用任何函数,则只会触发属性检查。这种方式使应用程序更快,内存效率更高。


推荐阅读