我正在使用角度材料表。内部连接功能我正在返回一个可观察的类型的患者。但是我必须在返回之前更新PatientData的值。返回之前,我必须添加“ Active属性,如果病人ID存在于redrows数组中。
数据表的连接功能
connect(): Observable<Patient[]> {
const patientData = this.patientService.getPatient();
patientData.subscribe((jsonData) => {
const redRows = this.getAge(jsonData);
for (let a = 0; a < jsonData.length; a++) {
if (redRows.includes(jsonData[a].id)) {
jsonData[a].active = 'Active';
} else {
jsonData[a].active = 'Not Active';
}
}
return jsonData;
},
(err) => console.error(err),
() => console.log('observable complete'));
return patientData;
}
答案 0 :(得分:0)
修改数据并从subscription
返回不会更改可观察到的内容,在subscribe()
中不会connect()
。使用rxjs
中的map运算符来修改数据。
import { map} from "rxjs/operators"
connect(): Observable<Patient[]> {
return this.patientService.getPatient().pipe(
map((jsonData) => {
const redRows = this.getAge(jsonData);
for (let a = 0; a < jsonData.length; a++) {
if (redRows.includes(jsonData[a].id)) {
jsonData[a].active = 'Active';
} else {
jsonData[a].active = 'Not Active';
}
}
return jsonData;
})
)
}
subscribe
到connect()
,无论您在哪里使用它。