0
Observables에 문제가 있습니다. 나는 기본 통신 예컨대 : 서비스에 아무런 문제가 없다 :Angular2 관찰 가능, 구독 및지도. 통신
getTableRecords(): Observable<RecordModel[]> {
return this.http
.get(this.API + 'records')
.map((tableRecords: Response) => tableRecords.json().data as RecordModel[])
.catch(this.handleError);
}
COMPONENT : 위에
getTableRecords() {
this.recordService.getTableRecords()
.subscribe(tableRecords => { this.tableRecords = tableRecords; }, (err) => { this.error = err; console.log(this.error)})
}
예는 잘 작동하지만 하나 추가 단계에 문제가 있습니다.
서비스 I :
getTableRecords(): Observable<RecordModel[]> {
return this.http
.get(this.API + 'records')
.map((res: Response) => res.json().data as RecordModel[])
.catch(this.handleError);
}
서비스 II
getRecordDetail(assetId: string) {
return this.rootService.getTableRecords()
.map((tableRecords:RecordModel[]) => {
console.log("GET RECORDS TO ANOTHER SERVICE: ", tableRecords, assetId);
(tableRecords:RecordModel[]) => tableRecords.filter((tableRecord:RecordModel) => tableRecord.assetId === assetId)
})
}
COMPONENT :
나는 결과를 표시합니다 전에, 나는 두 서비스 간의 통신에 parametr에 따라 하나 개의 값을 필터링 할 wannttableRecord: RecordModel;
getRecordDetail() {
this.sub = this.activatedRoute.params.subscribe(
params => {
if (params[ 'assetId' ] != undefined) {
let assetId:string = params[ 'assetId' ]
this.complianceDetailService.getRecordDetail(assetId)
.subscribe(result => this.tableRecord = result)
} else console.log("UNDEFINED ASSETID");
}
);
}
구성 요소에 문제가 있습니다. .subscribe(result => this.tableRecord = result)
에 IDE가 있습니다. void는 n입니다. RecordModel을 입력 할 수 있도록 할당 할 수 있습니다.
내가이 순서를 만들 수 있습니다 설명해주십시오 : 첫째, 하나 개의 서비스, 두에서 데이터를 가져 오기 : 구성 요소에 데이터를 반환 : 두 번째 서비스 세 가지 데이터를 조작 할 수 있습니다.
나는 약속과 함께 할 수있는 순서대로 Observables로 만들고 싶다.
최고 감사합니다. 우간다!
답변을 주셔서 감사합니다,하지만 불행히도 내가 그런 식으로, IDE에서 내가 잘못을 가지고 한 경우 : [TS] 형식 매개 변수 'T'에 대한 형식 인수는 사용에서 유추 할 수 없습니다. 형식 인수를 명시 적으로 지정하는 것을 고려하십시오. 형식 인수 후보 'RecordModel []'은 후보 'RecordModel'의 수퍼 유형이 아니기 때문에 유효한 형식 인수가 아닙니다. 'RecordModel'유형에 'length'속성이 없습니다. this : this –
대답 최종 업데이트 – raj