我的 HTML 中有以下代码,并使用 Angular v 1.6.3 以及来自 https://github.com/indrimuska/angular-moment-picker 的 Angular 矩选择器.我想使用 DD-MM-YYYY
格式显示日历。
<div moment-picker="member.memberSince"
format="DD-MM-YYYY"
max-view="month"
start-view="month"
autoclose="true"
today="true"
ng-model="member.memberSince"
start-date="member.memberSince | date : 'dd-MM-yyyy'">
{{ member.memberSince | date : 'dd-MM-yyyy' || "Select a date" }}
</div>
我有两个问题
- 当我在页面加载时从 JS 代码设置
member.memberSince
时,日期是 显示良好,例如01-04-2017
。但是当我选择日期时 日历,它以不需要的格式显示日期,例如2017 年 4 月 1 日星期六 00:00:00 GMT+0530
。
- 如果我不设置
member.memberSince
,那么我 在选择日历的页面上看不到任何控件。
我该如何解决这个问题?
最佳答案
这里有多个问题。
我们来看看docs | angular-moment-picker
#options首先,
moment-picker
: Two-way bindable property as formatted datetime string.
ng-model
: Two-way bindable property as Moment.js object.
现在,出于显而易见的原因,我们不应该将两者都设置为相同的属性。如果您提供了 ng-model
具有相同的属性,它似乎优先于此并将属性设置为 Moment.js 对象。
接下来,当你有 {{memberSince | date : 'dd-MM-yyyy' || "Select a date"}}
(其中 memberSince
设置为 ng-model
),最初有一个 string
/Date
目的。但是当你选择一个日期时,它又变成了不符合 date:'<my-dateformat>'
的 Moment.js 对象。显然。
您的问题的解决方案(如果您还没有想出的话)是删除 ng-model
设置为指令。并且您可以自由访问memberSince
来自 moment-picker="memberSince"
因为它将是您提供的格式中的格式化字符串,即 DD-MM-YYYY
.
而在 HTML 中,您可以使用 {{ memberSince || "Select a date" }}
无需使用 Angular 的 date
过滤自 memberSince
只是一个以提供的格式包含您选择的日期的字符串。
关于javascript - Angular Moment Picker 库中的日期格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43558005/