从服务获取数据并使用angular2(typescript)中的接口类型订阅数据集。
接口具有日期(startDate字段名称:日期类型)字段 从服务中,如果startDate字段值在html页面格式中为null,则获取01/01/1970值。
interface :
export class name {
public realStartDate?: Date
}
subscribe :
this.data = data.map(item => new name (new Date(item.startDate))
答案 0 :(得分:0)
需要为 item.startDate 添加空检查。
"新日期(item.startDate)"当item.startDate的值为null时返回01/01/1970。
尝试按如下方式编写:
subscribe :
this.data = data.map(item => new name (item.startDate==null?new Date():new Date(item.startDate))
答案 1 :(得分:0)
如果您想使用item.startDate ? new Date(items.startDate) : new Date()
默认为当前日期。此外,你的班级是一个坏主意。不要使用类来表示这样的对象,而是使用接口。
无论如何,你所需要的基本上是
<强> dated.ts 强>
export interface Dated {
realStartDate?: Date;
}
<强>服务项-service.ts 强>
import {Inject} from '@angular/core';
import {Http} from '@angular/http';
import {Observable} from 'rxjs';
import 'rxjs/add/operator/map';
import {Dated} from './dated';
@Inject export default class DatedItemsService {
constructor(readonly http: Http) {}
get(id): Observable<Dated> {
return this.http.get(`/api/v1/dateditems/${id}`)
.map(response => response.json())
.map(({startDate}) => ({
realStartDate: startDate ? new Date(startDate): undefined
});
}
}
编辑:根据评论,它似乎需要一个空值来代替当前日期,所以我已相应地更新了答案。