データソースの読み取りメソッドへの呼び出しが最初にページに入ったときに正常に機能するのに、ビューを更新するために呼び出すたびに実行に失敗する理由を誰か説明できますか? 記録として、私は Microsoft MVC 環境で Kendo UI Web (MVC ではありません) を使用しています。読み取りが呼び出されないことをデバッグではっきりと確認できますが、ステップインしようとすると、JQuery 縮小ファイルに入ります...これはデバッグできません。
コードのサンプルは次のとおりです。
var testDataSource = new kendo.data.DataSource({
transport: {
read: function (options) {
$.ajax({
url: "/Test/GetById",
data: { id: options.data[0] },
beforeSend: function() {
utils.hasPendingChanges = false;
myViewModel.set("isDirty", false);
},
success: function(result) {
utils.convertDates(result);
myViewModel.set("test", result);
kendo.bind($("#testForm"), myViewModel);
}
});
cache: false
},
parameterMap: function() {
return kendo.stringify(myViewModel.test);
}
},
change: function() {
var test= this.view()[0];
if (test!= null) {
myViewModel.set("test", test);
$("#testForm").show();
kendo.bind($("#testForm"), myViewModel);
} else {
$("#testForm").hide();
}
},
schema: {
data: function(data) {
if (data.notvalid) {
$(data.data).each(function() {
$("#errors").append('<li>' + this.toString() + '</li>');
});
} else {
myViewModel.set("readonly", true);
}
return data.data;
}
}
});
read メソッドは、次のように購読イベントで呼び出されます。
$.subscribe("/Test/Detail", function (id) {
testDataSource.read([id]);
};
そして、ビューモデルのキャンセルで:
cancel: function () {
$("#errors").html("");
myViewModel.set("readonly", true);
testDataSource.read([myViewModel.get("test.ID")]);
},