2017-10-10 112 views
0

我试图添加日期字段我MEAN应用程序的输入,而不使用form标签使用与角日期属性。为了确保我的解决方案是跨平台我选择使用NPM模块my-date-picker代替铬唯一input type="date"(我不得不寻找了很久,直到我发现了,这是为什么有没有这方面的指南)。如何使用我,日期选择器

的想法是成立一个名为projectInstalldate值,然后用我的“添加”功能,使用它,将它传递通快递和超越。我遇到的问题是日期属性。无论我尝试什么,我似乎都无法正确访问它们。希望我的代码将解释什么,我试图做的:

projects.component.ts

//imports are here 
import { IMyDpOptions } from 'mydatepicker'; 

@Component({ 
    selector: 'app-project', 
    templateUrl: '../views/projects.component.html', 
    styleUrls: [ '../styles/projects.component.css' ] 
}) 

export class ProjectsComp implements OnInit { 
    //unrelated code 
    //date: Date here? 

public myDatePickerOptions: IMyDpOptions = { 
    editableDateField: false, 
    openSelectorOnInputClick: true, 
    dateFormat: 'dd mmm yyyy' 
}; 

constructor( 
    private projectsService: ProjectsService 
) { 
    //unrelated code 
} 

//Datepicker function 
upDate(installDate: any) { 
    this.date = installDate; 
    this.newDate = this.date.toLocaleDateString(); 
} 

add(
    install_date: any 
): void { 
    this.projectsService.create(
     install_date 
    ).subscribe(project => { 
     //unrelated code 
    }); 
} 

projects.component.html

<h4>Date Templated: </h4> 
<my-date-picker [options]="myDatePickerOptions" 
    [(ngModel)]="installDate" 
    (inputFieldChanged)="upDate(installDate);" 
    ></my-date-picker> 
{{ newDate }} 
<input class="hidden" #projectInstalldate /> 

<button class="projectButton" (click)=" 
    add(
     <!-- other field values here --> 
     projectInstalldate.value 
    ); 
"> 
    Create</button> 

的想法是让从my-date-picker值然后使用upDate()变成string。然后显示的newDate值 - 此刻是的,它应该只是出现内部{{ newDate }},所以我知道它的工作之前,我设置的输入字段的该值。

它以这种方式设置的原因是因为我在这里有30多个其他字段,我不想将其更改为表单,如my-date-picker示例所示。我试过使用w3学校javacsript日期参考:

var date = new Date(); 
var newDate = date.toLocaleDateString(); 

但这只是将newDate设置为当前时间。尝试使用installDatemy-date-picker[(ngModel)]我得到[对象对象]。这样做应该是非常简单的,但我绝对没有办法找到帮助。将字符串转换为日期的结果很多,但不是相反的结果。你可以看到我想要使用date.toLocaleDateString()但每次这样,我一直试图实现它已经失败 - 我要么得到一个错误与实例,然后有this.date.etc.前缀,然后让另一个错误说属性toLocaleDateString不存在开机类型date

在我束手无策这里,真的希望任何事情。

回答

0

好的,所以这个问题一直阻止我在一周内取得进展。

看着为moment.js的文件后,我发现了一个方便的小支架对...

upDate(installDate: Date) { 
    this.date = new Date(installDate); 
    this.newDate = this.date.toLocaleDateString(); 
} 

和巴姆。现在我知道如何正确使用new Date()。我还没有试过这个,my-date-picker还没有想过,我使用镀铬只有input type="date"测试了解决方案。

编辑:现在,我正在尝试它与my-date-picker,我得到一个“无效日期”从我的upDate函数返回。我认为这是因为my-date-picker正在返回日期对象以外的东西。任何人都知道是否有一种方法可以从ngModel中获取此信息?

相关问题