如何格式化Json日期并将其绑定到DatePicker控件
How to Format Json Date and Bind it to The DatePicker Control
我有json:中的数据数组
[{"AccountStatementID": 2,"CompanyID": 1,"Description": "test","Amount": 1000,"ReceiptDate": "/Date(1447261200000)/","Type": "Payment"}];
我已经成功地将数据加载到表中,并以正确的格式(dd/MM/yyyy)
显示ReceiptDate。当我单击编辑按钮时,DatePicker控件中的ReceiptDate仍然是/Date(1447261200000)/
。
我使用momentjs以以下方式格式化:
ReceiptDate: moment(self.ReceiptDate).format('DD/MM/YYYY')
此外,日期选择器不会出现。
为什么ReceiptDate没有格式化,如何解决它并启动日期选择器?
这是jsfiddle中的演示。
我看到您已将日期选择器设置为只读。这就是点击时日期选择器没有出现的原因。
我修改了你小提琴上的一些细节,最后得到了这个jsfiddle。
一个是将Javascript日期-时间对象保存在您的数据中,因为您正在调用moment并对其进行格式化
var data = [
{
"AccountStatementID": 2,
"CompanyID": 1,
"Description": "test",
"Amount": 1000,
"ReceiptDate": new Date(1447261200000),
"Type": "Payment"
}
];
我不知道你在编辑时把日期定在哪里了。因此,调用moment().format()将在编辑时获得所需的格式。(如果需要,在编辑时删除只读到最新)。
您的foreach
在AccountStatements
上循环,用原始数据填充:
var data = [
{
"AccountStatementID": 2,
"CompanyID": 1,
"Description": "test",
"Amount": 1000,
"ReceiptDate": "/Date(1447261200000)/",
"Type": "Payment"
}
];
self.AccountStatements = ko.observableArray(data);
当您单击编辑时,将原始数据的一条记录发送到编辑功能,并将其设置为$root.AccountStatement
:的值
self.AccountStatement(accountStatement);
所以您的编辑器只是在处理原始数据。在这个过程中的某个时刻,您需要将原始数据转换为类似于您为单个私有变量创建的数据
var AccountStatement
我建议您创建一个接受原始数据记录并返回该形式的函数。在分配self.AccountStatements
之前,使用它来转换输入数组。
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 无法通过数组映射绑定
- 主干-不管怎样,检查事件以前是否绑定过
- 用于搜索的聚合物嵌套绑定
- Angular:更新一次性绑定的数据
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- react.js中的密钥绑定
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 将事件处理程序绑定到任何可能的事件
- 如何将 Bootstrap-datepicker 元素与 Angularjs ng-model 绑定
- 如何格式化Json日期并将其绑定到DatePicker控件
- 如何在CKEditor对话框中绑定JQuery UI Datepicker到文本字段?
- 数据绑定JQuery UI DatePicker
- jQuery datepicker - Knockout绑定设置初始日期
- 绑定jquery datepicker打开触发器'touchStart'而不是'focus
- 如何设置与KnockoutJS绑定的jQuery DatePicker的默认值?
- JQuery Datepicker获取代码绑定中的selectedmonth change事件
- 剑道UI:带有自定义编辑模板的网格,使用API设置值时不会绑定DatePicker
- Knockout验证不能与DatePicker绑定处理程序一起工作
- JQuery DatePicker绑定控件可以'不得包含在其他控制中