一个简单的组件具有一个输入(即criteria
)和一个可观察的(即result$
)。
class Foo {
@Input()
private criteria: string;
private result$: Observable<any>;
constructor(private service: MyService) { }
}
MyService类提供了一种方法,该方法消耗criteria
并返回应用于设置/更新result$
的Observable。
service.fetchResult(criteria: string): Observable<any>
使用此服务创建可观察对象的最新方法是什么? 最重要的要求是:
criteria
)时,也应使用新值来更新可观察值(即result$
)。答案 0 :(得分:1)
使用set
:
_criteria: Criteria; // set local variable if this input needed elswhere
@Input()
set criteria(c: Criteria) {
this.service.someMethod(c);
this._criteria = c;
}
使用OnChanges
:
ngOnChanges(changes: SimpleChanges) {
let criteria = changes.criteria;
if(criteria && criteria.currentValue !== criteria.previousValue){
this.service.someMethod(criteria);
}
}