Kendo UI Grid многократно передает один и тот же объект для уничтожения команды
Я работаю с сеткой кендо, и у меня возникла проблема с кнопкой команды уничтожения. Кнопка работает как положено и вызывает соответствующую функцию. Эта проблема возникает после удаления второй строки. При первом вызове в функцию передается правильный объект, при последовательных вызовах вместо отправки объекта, соответствующего строке, в которой нажата команда уничтожения, он отправляет объект из строки первого вызова. Это происходит для каждой строки после начальной команды уничтожения. Вызов функции успеха приведет к удалению правильной строки из таблицы, но, поскольку были переданы неверные данные, они никогда не удаляются с сервера (WebAPI). Я не уверен, является ли это ошибкой в конфигурации сетки, конфигурацией источника данных или просто ошибкой. Я включил текущую конфигурацию ниже. Любая помощь будет оценена. Спасибо.
vm.gridOptions = {
dataSource: {
//autoSync:true,
schema:{
model: {
id: "id",
fields:{
id:{editable:false},
projectno: {editable: true},
description: {editable: true},
fund: {editable: true},
dept: {editable: true},
org: {editable: true},
grc: {editable: true},
apprunit: {editable: true},
objcode: {editable: true}
}
}
},
transport:{create: createProject, read: readProjects, update:saveProject, destroy: deleteProject}
},
selectable: false,
sortable: true,
editable: { mode:"popup"},
//save: validateProject,
columns: [
{
title: "Project",
field: "projectno",
width: "5%"
},
{
title: "Description",
field: "description",
width: "30%"
},
{
title: "Fund",
field: "fund",
width: "5%"
},
{
title: "Dept",
field: "dept",
width: "5%"
},
{
title: "Org",
field: "org",
width: "5%"
},
{
title: "GRC",
field: "grc",
width: "5%"
},
{
title: "Appr",
field: "apprunit",
width: "5%"
},
{
title: "Obj. Code",
field: "objcode",
width: "5%"
},
{ command: "edit",width: "5%" },
{ command: "destroy",width: "5%" }
]
};
function deleteProject(options){
projectservice.deleteProject(options.data).then(function(data){
options.success(data)
},function(data){
options.error(data);
});
}