1

私はこの問題についてほとんど盲目的に見つめてきました.KendoUIのdataSourceといくつかのフィルターを使用して、一種のajax検索を行っています: 何が起こるかというと、関数が適切な順序で実行されていないということです。私の dataSource と kendoObservable は次のようになります。

var jobTemplate = kendo.template($('#job-stub').html());
var jobCount = new kendo.data.ObservableObject({
    count: 20
});

jobCount.bind('change', function(){
    if(this.count == 0){
        $('#result-wrapper').prepend('<h2>Er zijn geen vacatures gevonden.</h2>');
    } else if(this.count == 1){
        $('#result-wrapper').prepend('<h2>Er is <span class="blue">'+this.count+'</span> vacature gevonden.</h2>');
    } else {
        $('#result-wrapper').prepend('<h2>Er zijn <span class="blue">'+this.count+'</span> vacatures gevonden.</h2>');
    }
});

var jobData = new kendo.data.DataSource({
    transport: {
        read: {
            url: '/jobs/json/search',
            dataType: 'json',
            data: {
                job_matching_function: function(){
                    return $('#job_matching_function').val();
                },
                job_matching_type: function(){
                    return $('#job_matching_type').val();
                },
                job_matching_hours: function(){
                    return $('#job_matching_hours').val();
                },
                job_matching_education: function(){
                    return $('#job_matching_education').val();
                }
            }
        }
    },
    schema: {
        data: 'results'
    },
    change: function(){
        $('#result-wrapper').html(kendo.render(jobTemplate, this.view()));
        jobCount.set('count', this.view().length);
    }
});

そして、フィルターの 1 つがクリックされると、実行しますjobData.read();。時々、結果カウントが表示されません。誰かが理由を知っていますか?

ありがとう、

  • スティーブン
4

1 に答える 1

1

スティーブン、私は読み取りに4つの匿名メソッドを入れようとしたことはありません。それがどのように動作するかはわかりません。つまり、1回の読み取り呼び出しと1回の戻りを試してください。次に、この投稿に示されているように、完全なイベントを使用できます。

于 2012-11-27T10:51:03.113 に答える