【问题标题】:Angular 2 - date.getMonth is not a functionAngular 2 - date.getMonth 不是函数
【发布时间】:2017-03-06 14:18:57
【问题描述】:

我正在使用这个Angular-2-datepicker。一切正常,但是每次我尝试设置 [(date)] 属性时,都会出现错误。

date.getMonth 不是函数

我查了一些信息,发现这可能是因为我的变量不是 date 类型,而我的是,所以我现在卡住了,找不到解决方案。

我的 HTML:

...
<material-datepicker dateFormat="DD-MM-YYYY" weekStart="1" [(date)]="definitionDetails.From"></material-datepicker>
...

我的模特:

export class ClosingDayDefinition implements Serializable<ClosingDayDefinition> {

    ID: number;
    DescriptionID: number;
    Info: models.DefinitionDetailInfo;
    Description: models.DefinitionDescription;
    CodeId: number;
    From: Date;
    To: Date;
    Recurring: boolean;
    Holiday: boolean;
    Groups: Array<models.ClosingDayGroup>;
    TypeName: string;

我的组件:

...
public definitionDetails: models.ClosingDayDefinition;
...

变量对数:

【问题讨论】:

    标签: angular typescript datepicker


    【解决方案1】:

    似乎From 属性包含一个字符串,而不是Date 对象。

    我猜你是从某种 API 获取这个日期字符串,尝试将其解析为日期而不是直接存储它:

    这会起作用

    new Date('2017-03-08T00:00:00+01:00')
    

    【讨论】:

    • 我对 Angular 2 很陌生,但这不就是这门课的用途吗?由于我创建了一个 class ClosingDayDefinition 的新实例,如果它不是日期类型,它不会给我错误吗?
    • 这就是 TypeScript 的用途,但它只能在编译前检查类型,如果在运行时接收到实际数据,它永远不会知道,你必须确保你期待与你相同的类型在你的类中定义,如果它不是同一类型,则相应地对其进行转换。
    • 是的!这就是问题所在,我收到了一个字符串。我现在将它转换为日期,它解决了这个问题。谢谢!
    猜你喜欢
    • 2018-09-12
    • 2017-07-19
    • 2017-02-12
    • 1970-01-01
    • 2017-01-19
    • 2017-01-27
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多