我很难弄清楚 Angular 的最佳实践是什么。
我有以下问题:
<div>
<app-child [data]="data | async">
</app-child>
</div>
我应该执行以下操作:
A:使用 Backing 属性来更新相关的值
class ChildComponent{
@Input
set data(value){
this._data =value;
this.label = this.labelService.getLabelColor(value.warningperiod)
}
get data(){ return this._data}
_data: object;
labelColor:string
// constuctor...
}
B:使用 Observables 和订阅
<div>
<!-- pass down the whole observable -->
<app-child [data]="data">
</app-child>
</div>
class ChildComponent implements OnInit{
@Input data: Observable<object>;
labelColor: String;
onInit(){
this.data
.subscribe( value =>{
this.labemColor= this.labelService
.getLabelColor(value.warningPeriod)
})
}
//constructor
}
什么是更好的?
当我订阅时,我需要取消订阅,这很“烦人”。
在什么情况下我应该做什么?