【发布时间】:2016-06-08 14:55:01
【问题描述】:
全部,
环境:
asp.net 3.5
我的日期通过 lib:Newtonsoft.json 库使用 ISO8601 格式进行序列化
目标:
在我的模型 (Document.DocumentDate) 上的日期字段和 ajax 控件工具包日历扩展器的文本框之间创建双向绑定。 ajax 日历在后台使用文本字段,因此我将下面的绑定应用于文本字段。当页面加载时,从对象到控件的绑定有效,但是在我使用日历扩展器更改文本字段后,文本值被更改但我的基础对象没有更新,也没有调用绑定上的 update() 方法。
代码如下:
data-bind="date: {jsonDate : Document.DocumentDate }"
ko.bindingHandlers.date = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var value = valueAccessor();
var dtStr = ko.unwrap(value.jsonDate);
var dt = new Date(dtStr);
var ret = dt.getMonth() + 1 + "/" + dt.getDate() + "/" + dt.getFullYear();
$(element).val(ret);
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
}
};
注意:
如果我将数据绑定表达式更改为:
data-bind="value: Document.DocumentDate"
一切正常,但日期在文本字段中呈现的方式不是我想要的。这就是为什么我使用自定义绑定来格式化文本字段中的日期。
【问题讨论】:
标签: asp.net knockout.js data-binding