【发布时间】:2019-06-15 22:42:23
【问题描述】:
我有一个这样的对象:
import { Moment } from 'moment';
export interface INewsletter {
id?: number;
creationDate?: Moment;
email?: string;
}
export class Newsletter implements INewsletter {
constructor(public id?: number, public creationDate?: Moment, public email?: string) {}
}
在一个地方我需要从我正在使用的表单中获取日期,但在第二种情况下给我带来了问题,我只需要从系统中获取日期并在新创建的对象中使用它(没有错误,我不明白,因为日期也是一个时刻)。
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { HttpResponse, HttpErrorResponse } from '@angular/common/http';
import { Observable } from 'rxjs';
import * as moment from 'moment';
import { DATE_TIME_FORMAT } from 'app/shared/constants/input.constants';
import { INewsletter } from 'app/shared/model/newsletter.model';
import { NewsletterService } from '../../entities/newsletter/newsletter.service';
@Component({
selector: 'jhi-footer',
templateUrl: './footer.component.html'
})
export class FooterComponent implements OnInit {
newsletter: INewsletter;
isSaving: boolean;
creationDate: string;
constructor(private newsletterService: NewsletterService, private activatedRoute: ActivatedRoute) {}
ngOnInit() {
this.isSaving = false;
this.creationDate = moment().format(DATE_TIME_FORMAT);
this.newsletter = new Object();
(1) this.newsletter.creationDate = moment().format(this.creationDate);
(2) this.newsletter.creationDate = this.creationDate;
}
所以,在 (1) 和 (2) 两种情况下,我都无法让它工作,我不明白为什么。
【问题讨论】:
-
这是因为来自
moment的format函数返回一个字符串,而您的this.newsletter.creationDate是您界面中的Moment 对象。所以你必须做这样的事情this.newsletter.creationDate = moment(this.creationDate); -
.format()仅用于格式化,因此您需要在那里传递一些格式,而不是 creationDate -
感谢和抱歉这个明显的问题。我不知道我在想什么
标签: angular typescript momentjs