6

我是淘汰赛的新手,并试图让一个简单的任务启动并运行。我正在开发一个 MVC4 .NET 应用程序,目的是绑定日期范围选择器以发出更新 Highchart 图形数据的 ajax 请求。我正在使用 Dan Grossman 的以引导程序为主题的日期选择器,到目前为止它非常棒(https://github.com/dangrossman/bootstrap-daterangepicker)。

基本目标是观察这个 jQuery 日期范围选择器更新的跨度,然后使用敲除将此值传递给应用程序的另一部分以进行 ajax 请求。

我已经尝试了所有我可以在网上找到的东西.. valueUpdate:更改跨度以在淘汰赛中使用一些 jQuery 来完成相同的目标,使用订阅函数在使用日期选择器之前和之后查看跨度的值. 显然,这使用了 jQuery .change() 事件处理程序,它只适用于输入、选择和 textareas.. 而不是跨度。

这是我到目前为止所拥有的小提琴:http: //jsfiddle.net/eyygK/9/

感谢任何帮助和输入。

4

1 回答 1

4

当更新新的日期范围时,您只需要currDateRange在视图模型中更新您的属性。

$('#reportrange').daterangepicker({
    ...,
    function (start, end) {
        var dateRangeText = start.toString('MM/d/yy') + ' - ' + end.toString('MM/d/yy');
        vm.currDateRange(dateRangeText);
    }
});

所以当你更新你的日期范围时,它会报告给knockout,并且knockout会更新所有使用它的地方,span.

现在您可以订阅currDateRange, 并从那里进行 Ajax 调用。

self.currDateRange = ko.observable("09/24/12 - 09/24/12");
self.currDateRange.subscribe(function(newValue) {
   $.ajax({...});
});

That way it doesn't matter where the update comes from, knockout will notify everybody.

于 2012-09-25T03:09:16.217 回答