我是淘汰赛的新手,并试图让这项任务成为一项简单的任务.我正在开发一个MVC4 .NET应用程序,目的是绑定一个日期范围选择器来发出更新Highchart图数据的ajax请求.我正在使用Dan Grossman的自助式主题日期选择器,到目前为止它一直都很棒(
https://github.com/dangrossman/bootstrap-daterangepicker).
基本目标是观察此jQuery日期游侠选择器更新的范围,然后使用knockout将此值传递给应用程序的另一部分以获取ajax请求.
我已经尝试了我可以在网上找到的所有内容.. valueUpdate:更改跨度以在knockout中使用一些jQuery来完成相同的目标,使用subscribe函数在使用日期选择器之前和之后观察跨度的值.显然,这使用了jQuery .change()事件处理程序,它只对输入,选择和textareas有好处..而不是跨越.
这是我到目前为止的小提琴:http://jsfiddle.net/eyygK/9/
感谢任何帮助和输入.
解决方法
更新新的日期范围时,您只需更新视图模型中的currDaterange属性.
$('#reportrange').daterangepicker({ ...,function (start,end) { var daterangeText = start.toString('MM/d/yy') + ' - ' + end.toString('MM/d/yy'); vm.currDaterange(daterangeText); } });
因此,当您更新日期范围时,它会将其报告给淘汰赛,淘汰赛将更新所有使用它的地方,即跨度.
现在您可以订阅currDaterange,并从那里进行Ajax调用.
self.currDaterange = ko.observable("09/24/12 - 09/24/12"); self.currDaterange.subscribe(function(newValue) { $.ajax({...}); });
这样,更新来自何处并不重要,淘汰赛将通知所有人.