我有一个向导包含了4个步骤,它的工作很好,但是当我在步骤2上添加Jquery的数据报警器时,如果我刷新我的浏览器,它就不会显示(只是一个输入类型的文本显示),但是我丢失了步骤1的信息(如果我刷新我的浏览器),我如何解决我的问题,
我的向导是这样的:http://jsfiddle.net/FyuSD/36/
wizard.cshtml:
....
<script id="step1" type="text/html">
<div>Name: <input type="text" data-bind="value: Name"></div>
<div>Description: <input type="text" data-bind="value: Description"></div>
</script>
<script id="step2" type="text/html">
Start: <br/><input type="text" id="from" data-bind="value: StartDate">
Stop:<br/> <input type="text" id="to" class="required" data-bind="value: EndDate">
</script>
.....DatePicker.js:
$(function () {
$("#from").datepicker({
showOn: "button",
buttonImage: "/Content/images/calendar.gif",
buttonImageOnly: true,
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
onSelect: function (selectedDate) {
$("#to").datepicker("option", "minDate", selectedDate);
}
});
$("#to").datepicker({
showOn: "button",
buttonImage: "/Content/images/calendar.gif",
buttonImageOnly: true,
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
onSelect: function (selectedDate) {
$("#from").datepicker("option", "maxDate", selectedDate);
}
});
});我很抱歉我的英语不好
谢谢,
发布于 2012-08-04 16:43:29
我玩了一会儿小提琴,你的解决方案就是这个问题的答案。
它显示了自定义绑定的数据采集器实现,如“剔除”文档:敲除-自定义绑定中所描述的那样。
您需要创建一个自定义绑定处理程序,该处理程序将在呈现模板时初始化您的数据启动器。
// call this before you call ko.applyBindings()
ko.bindingHandlers.datepicker = {
init: function(element, valueAccessor, allBindingsAccessor) {
// initialize here
},
update: function(element, valueAccessor, allBindingsAccessor) {
// change handler here
}
};当您声明数据绑定时,使用自定义绑定的名称(而不是"value: StartDate")
<br/>
Start :<input type="text" id="from" data-bind="datepicker: StartDate, datepickerOptions: {onSelect: $root.onSelectStartDate()}" />
<br/>
End :<input type="text" id="to" data-bind="datepicker: EndDate, datepickerOptions: {onSelect: $root.onSelectEndDate()}" /> 当然,$root是指您的ViewModel类,这意味着您需要一些方法。这是您可以放置minDate和maxDate代码的地方。
function ViewModel() {
// ...
self.onSelectStartDate = function() {
return function() {
alert("Start Date selected");
};
};
self.onSelectEndDate = function() {
return function() {
alert("End Date selected");
};
};
}; 我在这里用更新的小提琴测试了它,http://jsfiddle.net/carbontax/bwA4N/5/。它看起来很有趣,因为datepicker是不可用的,但是绑定处理程序正在做正确的事情。
https://stackoverflow.com/questions/11760900
复制相似问题