When I add a new record then update it no issue comes. But when again edit the same record and then click on the cancel button then this error is coming
"Uncaught TypeError: Cannot read property 'uid' of undefined"
My code is :
var app = angular.module('myapp', ['kendo.directives']);
app.controller('commonCtrl', function ($scope) {
var factor = { Factor: { type: "string", editable: true } };
var dynamicMonths = {
decmonth: { type: "string", editable: true },
novmonth: { type: "string", editable: false },
octmonth: { type: "string", editable: false },
septmonth: { type: "string", editable: false },
augmonth: { type: "string", editable: false },
julmonth: { type: "string", editable: false },
junmonth: { type: "string", editable: false },
maymonth: { type: "string", editable: false },
aprmonth: { type: "string", editable: false },
marmonth: { type: "string", editable: false },
febmonth: { type: "string", editable: false },
janmonth: { type: "string", editable: false }
var fieldSet = $.extend(factor, dynamicMonths);
var crudServiceBaseUrl = "json/data",
dataSource = new kendo.data.DataSource({
transport: {
read: {
url: crudServiceBaseUrl + "/read/qualitative.json",
dataType: "json"
update: {
url: crudServiceBaseUrl + "/update/qualitative.json",
dataType: "json"
destroy: {
url: crudServiceBaseUrl + "/delete/qualitative.json",
dataType: "json"
create: {
url: crudServiceBaseUrl + "/create/qualitative.json",
dataType: "json"
parameterMap: function (options, operation) {
if (operation !== "read" && options.models) {
return { models: kendo.stringify(options.models) };
batch: false,
schema: {
data: "qualitative",
model: {
id: "FactorID",
fields: fieldSet
var staticColumns = [{
command: [{
name: "edit", text: {
edit: "",
update: "",
cancel: ""
}, { name: "destroy", text: " " }], title: "Option", width: "115px", locked: true
}, { field: "Factor", title: "Factor", width: "250px", locked: true, }];
var dynamicColumns = [
{ field: "decmonth", title: "12/2016", width: "150px" },
{ field: "novmonth", title: "11/2016", width: "150px" },
{ field: "octmonth", title: "10/2016", width: "150px" },
{ field: "septmonth", title: "09/2016", width: "150px" },
{ field: "augmonth", title: "08/2016", width: "150px" },
{ field: "julmonth", title: "07/2016", width: "150px" },
{ field: "junmonth", title: "06/2016", width: "150px" },
{ field: "maymonth", title: "05/2016", width: "150px" },
{ field: "aprmonth", title: "04/2016", width: "150px" },
{ field: "marmonth", title: "03/2016", width: "150px" },
{ field: "febmonth", title: "02/2016", width: "150px" },
{ field: "janmonth", title: "01/2016", width: "150px" }]
var columns = staticColumns.concat(dynamicColumns);
$scope.productName = "CECL";
$scope.mainOptions = {
dataSource: dataSource,
toolbar: [{ name: "create", text: "<label class='lblAdd' title='Add Factor'>Factors</label>" }],
columns: columns,
editable: "inline"
In the above code I am using angular js and I getting the data from a json file which is situated locally on my machine.
I have individually separated the columns and data part in the objects. You can see in there.
Please help me out in this.
Waiting for your reply
Please check the following forum thread and let me know if it helps: