【问题标题】:Assigning value to an HTML input of type date with Angular 4使用Angular 4为日期类型的HTML输入赋值
【发布时间】:2019-02-16 00:50:40
【问题描述】:

我是 Angular 的新手,但我需要在加载页面时为日期类型的 html 输入分配一个日期。

我注意到,如果您将输入类型从日期更改为文本,则会将值分配给输入,但将值保留为未分配的日期。

有人会知道我哪里出错了。

跟随我的代码。

HTML

<input class="form-control" 
       type="date" 
       maxlength="10" 
       placeholder="dd/mm/yyyy"
       [(ngModel)]="carFilter.dataInicial"  
       (ngModelChange)="onDateChangeFim($event)"    
        min="{{auxFimMinDate}}"
        max="{{auxFimMaxDate}}">

组件示例

export class CarComponent implements AfterViewInit, OnInit {

    carFilter : CarModel;
    auxInMaxDate: Date  = new Date("2099-12-30");
    auxFimMinDate: Date  = new Date("1900-01-01");


    ngOnInit(): void {

        this.carFilter  = new CarModel();
        const data = new Date();        
        this.carFilter.dataInicial = data;

    }
}

模型示例

export class CarModel {

    offSet : number;
    dataInicial : Date;
    dataFinal : Date;

    constructor(
                offSet:number,
                dataInicial : Date,
                dataFinal : Date
                ){

        this.offSet = offSet;
        this.dataInicial = dataInicial;
        this.dataFinal = dataFinal;     

    }
}

图像输入

控制台谷歌浏览器

【问题讨论】:

标签: javascript angular


【解决方案1】:

我能够通过分配我的 ngModel | 来解决问题。日期:'yyyy-MM-dd'。我必须研究为什么它会这样工作。如果有人想发表评论或提出更好的建议,我感谢您。 感谢所有帮助@Samy Sammour 和@Dmitriy Snitko 的人

<input class="form-control" 
   type="date" 
   maxlength="10" 
   placeholder="dd/mm/yyyy"
   [ngModel]="carFilter.dataInicial | date:'yyyy-MM-dd'"  
   (ngModelChange)="onDateChangeFim($event)"    
    [min]="auxFimMinDate"
    [max]="auxFimMaxDate">

【讨论】:

    【解决方案2】:

    变量 date 应该是来自 Date 的对象。不只是一个字符串。

    因此,尝试添加一个真实的对象:

    this.carFilter  = new CarModel();
    var data = new Date('10/09/2018');        
    this.carFilter.dataInicial = data;
    
    <input type="date" [(ngModel)]="carFilter.dataInicial" />
    

    【讨论】:

    • 感谢 Samy Sammour 的回答,我就是这样做的,但是输入并没有呈现组件中分配的值。根据您的评论更改我的代码后,我在我的问题中添加了一个组件图像。
    • 尝试使用 [value]="carFilter.dataInicial" 而不是 [(ngModel)]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多