リストビューを使用してローカル json 変数にデータを追加しようとしています。ビューモデルの一部である剣道データソース内にデータ配列をまとめました。
問題は、トランスポートの「作成」アクションに到達するまでに、ローカル配列が更新されていないことですが、実際には viewmodel.dataSource.data が更新されていました。トランスポートの作成アクションに到達したときにローカル データ配列を更新するにはどうすればよいですか。
これが私のコードのJsfiddleです。
var data =
[{
"ID": 3,
"TopMenuId": 2,
"Title": "Cashier",
"Link": "www.fake123.com"
},
{
"ID": 4,
"TopMenuId": 2,
"Title": "Deposit",
"Link": "www.fake123.com"
}
];
var viewModel = kendo.observable({
dataSource: new kendo.data.DataSource({
transport: {
read: function (options) {
alert("Read");
options.success(data);
},
create: function (options) {
debugger;
alert("Create");
alert(data.length);
},
update: function (options) {
alert("Update");
},
destroy: function (options) {
alert("Destroy");
alert(data.length);
}
},
batch: true,
pageSize: 4,
schema: {
model: {
id: "ID",
fields: {
ID: {
editable: false,
nullable: true
},
TopMenuId: {
editable: false,
nullable: true
},
Title: {
editable: true,
validation: {
required: true
}
},
Link: {
editable: true
}
}
},
data: "",
total: function (result) {
result = result.data || result;
return result.length || 0;
}
},
}),
});
//kendo.init($("#briefOverview"));
$(document).ready(function () {
kendo.bind($("#briefOverview"), viewModel);
$(".k-add-button").click(function (e) {
var listView = $("#listsContainer").data("kendoListView");
listView.add();
e.preventDefault();
});
});