Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 将类型为datetime-local的输入绑定到角度2中的Date属性大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
可以将Date类型的组件属性绑定到类型设置为datetiR_78_11845@e-local的 HTML5输入?

在我的组件中,我有一个气质:

public filterDateFrom: Date;

在我的模板中,我有一个输入定义为:

<input type="datetiR_78_11845@e-local" [(ngModel)]="filterDateFrom" />

但绑定不起作用.

Demo Plnkr

您可以使用以下格式绑定日期:yyyy-MM-ddTHH:mm,您还可以从date.toISOString().slice(0,16)(切片在分钟后移除时间部分).

@Component({
    SELEctor: 'app',template: `<input type="datetiR_78_11845@e-local" [value]="date" 
          (changE)="date=$event.target.value" /> {{datE}}` 
})
export class AppComponent {
    date: String;
    constructor() {
        this.date = new Date().toISOString().slice(0,16);
    }
}

请记住,date.toISOString()将从本地时间返回一个日期偏移量.您还可以自己构建日期字符串:

private toDateString(date: DatE): String {
    return (date.getFullYear().toString() + '-' 
       + ("0" + (date.getMonth() + 1)).slice(-2) + '-' 
       + ("0" + (date.getDate())).slice(-2))
       + 'T' + date.totimestring().slice(0,5);
}

如果您想要将选择绑定到Date模型,可以使用它来构建自定义日期组件:

@Component({
    SELEctor: 'my-date',events: ['dateChange'],template: `<input type="datetiR_78_11845@e-local" [value] = "_date" 
             (changE) = "onDateChange($event.target.value)" />`
})
export class MyDate{
    private _date: String;
    @input() set date(d: DatE) {
        this._date = this.toDateString(d);
    }
    @Output() dateChange: EventEmitter<Date>;
    constructor() {
        this.date = new Date();
        this.dateChange = new EventEmitter();       
    }

    private toDateString(date: DatE): String {
        return (date.getFullYear().toString() + '-' 
           + ("0" + (date.getMonth() + 1)).slice(-2) + '-' 
           + ("0" + (date.getDate())).slice(-2))
           + 'T' + date.totimestring().slice(0,5);
    }

    private parseDateString(date:string): Date {
       date = date.replace('T','-');
       var parts = date.split('-');
       var timeParts = parts[3].split(':');

      // new Date(year,month [,day [,hours[,minutes[,seconds[,ms]]]]])
      return new Date(parts[0],parts[1]-1,parts[2],timeParts[0],timeParts[1]);     // Note: months are 0-based

    }

    private onDateChange(value: String): void {
        if (value != this._datE) {
            var parsedDate = this.parseDateString(value);

            // check if Date is valid first
            if (parsedDate.getTime() != NaN) {
               this._date = value;
               this.dateChange.emit(parsedDatE);
            }
        }
    }
}

您的组件的@L_673_10@将绑定到具有双向模型绑定的Date模型:

@Component({
    SELEctor: 'my-app',directives: [MyDate],template: '<my-date [(datE)]="date"></my-date>  {{datE}}' 
})
export class AppComponent {
    @input() date: Date;
    constructor() {
        this.date = new Date();
    }
}

或者如果要避免自定义标签,请重写组件作为指令:

<input type="datetiR_78_11845@e-local" [(datE)]="date" />

Demo Plnkr with Directive

大佬总结

以上是大佬教程为你收集整理的angularjs – 将类型为datetime-local的输入绑定到角度2中的Date属性全部内容,希望文章能够帮你解决angularjs – 将类型为datetime-local的输入绑定到角度2中的Date属性所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。