我正在做一个中等规模的应用程序,我想知道我的做法与数据绑定.Im传递数据直接从服务到模板的这种方式。
<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>
一些tutorialsapps有一个不同的方法来制作它。通常是通过在组件中订阅服务,然后将结果分配给组件变量的方式。
cases = [];
constructor(
public caseService: CasesService) {
}
ngOnInit(): void {
this.caseService.getStructure().subscribe(cases => this.cases = cases);
}
你怎么看?一些道具,缺点?
之所以建议站在订阅和返回值到本地变量的角度,是因为如果你把函数调用添加到HTML模板中,angular就必须检查函数的返回值,这种方式对函数本身进行多次调用。因为Angular会检查函数的返回值,所以整个变化检测的生命周期就被触发了。如果在模板中不使用函数调用,而只使用变量,Angular就不用调用任何函数,只需要触发属性检查。这样使得应用的速度更快,内存效率更高。