6

私はノックアウトが初めてで、単純なタスクを実行しようとしています。ハイチャートグラフデータを更新するためのajaxリクエストを作成するために日付範囲ピッカーをバインドする目的で、MVC4 .NETアプリに取り組んでいます。私はダン・グロスマンのブートストラップをテーマにした日付ピッカーを使用していますが、これまでのところ素晴らしいです ( https://github.com/dangrossman/bootstrap-daterangepicker )。

基本的な目標は、この jQuery 日付レンジャー ピッカーが更新するスパンを監視し、ノックアウトを使用してこの値をアプリの別の部分に渡して ajax リクエストを行うことです。

私はオンラインで見つけることができるすべてを試しました.. valueUpdate:同じ目標を達成するためにノックアウト内でいくつかのjQueryを使用するようにスパンを変更し、サブスクライブ関数を使用して日付ピッカーが使用される前後のスパンの値を監視します. どうやら、これは jQuery .change() イベント ハンドラーを使用します。これは、入力、選択、およびテキストエリアでのみ有効です。

ここに私がこれまでに持っているもののフィドルがあります: 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);
    }
});

したがって、日付範囲を更新すると、ノックアウトに報告され、ノックアウトはそれが使用されているすべての場所、span.

にサブスクライブしてcurrDateRange、そこから Ajax 呼び出しを実行できるようになりました。

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

そうすれば、更新がどこから来たかに関係なく、ノックアウトが全員に通知されます。

于 2012-09-25T03:09:16.217 に答える