使用 angular 4 和 observable 时出现错误。
src/app/ca-calendar/calendar.component.ts(84,5) 中的错误:错误 TS2322:类型“Observable”不可分配给类型“Observable”。类型 'Year' 不能分配给类型 'Year[]'。“年份”类型中缺少属性“包含”。
我究竟做错了什么?
服务:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import { Year, Month } from '../../models';
@Injectable()
export class CalendarService {
endPoint: string;
private _calendarUrl = '/api/mycalendar';
constructor(private http: HttpClient) {
}
getYear(id: string): Observable<Year> {
return this.http.get(this._calendarUrl + '?id=' + id)._catch(this.handleError);
}
getYears(): Observable<Year> {
return this.http.get(this._calendarUrl)
.map((res: Response) => res.json())
._catch(this.handleError);
零件:
import { Component, OnInit } from '@angular/core';
import { MonthCalendarComponent } from './month-calendar/month-calendar.component';
import { Month } from '../models/month';
import { MonthsService } from '../services/calendar/months/months.service';
import { CalendarService } from '../services/calendar/calendar.service';
import { Year } from '../models';
import { Observable } from 'rxjs/Observable';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'ca-calendar',
templateUrl: './calendar.component.html',
styleUrls: ['./calendar.component.css']
})
export class CalendarComponent implements OnInit {
public myYears$: Observable<Year[]>;
constructor(private calendarService: CalendarService, private monthsService: MonthsService) {}
ngOnInit() {
this.myYears$ = this.calendarService.getYears();
}
...和型号
import { Month } from './month';
import { Week } from './week';
export class Year {
id: String;
number: Number;
months: Month[];
weeks: Week[];
constructor() {
}
}