Asp.net mvc 用jQueryUI日期选择器击倒Js-“;缺少此日期选择器的实例数据;
我在我的视图模型中将日期声明为可观察日期,如下所示:Asp.net mvc 用jQueryUI日期选择器击倒Js-“;缺少此日期选择器的实例数据;,asp.net-mvc,jquery-ui,knockout.js,Asp.net Mvc,Jquery Ui,Knockout.js,我在我的视图模型中将日期声明为可观察日期,如下所示: self.date = ko.observable(date); 在我的标记中,我声明控件如下: self.date = ko.observable(date); 这是在一个敲除JS模板中使用的,我正试图通过一个定制对象集合的开箱即用ASP.NETMVC模型绑定使其放置得更好 我正在使用以下淘汰JS自定义绑定: ko.bindingHandlers.datepicker = { init: function (element,
self.date = ko.observable(date);
在我的标记中,我声明控件如下:
self.date = ko.observable(date);
这是在一个敲除JS模板中使用的,我正试图通过一个定制对象集合的开箱即用ASP.NETMVC模型绑定使其放置得更好
我正在使用以下淘汰JS自定义绑定:
ko.bindingHandlers.datepicker = {
init: function (element, valueAccessor, allBindingsAccessor) {
//initialize datepicker with some optional options
var options = allBindingsAccessor().datepickerOptions || { dateFormat: 'dd/mm/yy' };
$(element).datepicker(options);
//handle the field changing
ko.utils.registerEventHandler(element, "change", function () {
var observable = valueAccessor();
observable($(element).datepicker("getDate"));
});
//handle disposal (if KO removes by the template binding)
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).datepicker("destroy");
});
},
//update the control when the view model changes
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor()),
current = $(element).datepicker("getDate");
if (value - current !== 0) {
$(element).datepicker("setDate", value);
}
}
};
我的问题是,当在Datepicker中选择一个值时,Chrome中会出现以下错误:
未捕获此日期选择器缺少的实例数据
t、 扩展
t、 延长。\ u选择日期
t、 扩展。\ u attachHandlers.e.dpDiv.find.map.e.selectDay
x、 event.dispatch jquery.js:4692x.event.add.y.handle
如果删除用于设置控件Id和名称的属性绑定,则不会发生错误。我需要能够设置它,以便MVC模型绑定能够正确地解释它。欢迎提出任何建议或想法
谢谢我怀疑问题在于,当应用datepicker绑定时,id尚未设置。从我在网上看到的情况来看,id是日期选择器工作方式的关键,日期选择器与id相关联。如果它发生变化,通常会导致问题 由于您使用的是knockout 3.1,因此可以将
after
属性添加到绑定处理程序中,并将attr
绑定包含到列表中。这将确保首先应用列出的绑定,然后再应用此绑定。应用了attr
绑定后,元素应该有一个id
ko.bindingHandlers.datepicker = {
after: ['attr'], // add this
init: ...,
update: ...
};
请注意,由于您的ID在添加/删除付款时正在更新。如果更改改变了现有控件的id,它将分离关联的日期选择器,您将再次看到问题
什么版本的淘汰赛,2.x还是3.x?我还假设这个HTML片段位于foreach绑定中(由于使用了$index),我在标题“集成第三方小部件与”下找到了一个日期选择器的工作示例knockout@RobertSlaney是的,你是对的。为了简洁起见,我省略了foreach。我用的是淘汰赛3.1.0。G_’S谢谢,但该示例没有为数据绑定控件使用ID,这是我的问题非常感谢@Jeff Mercado,非常感谢您的帮助!谢谢,帮了我的忙。