[英]Kendo Grid: add new row with nested object stopped working
我通过这种方式从嵌套JSON填充Kendo数据网格:
https://stackoverflow.com/a/24441318/535556
一切正常,直到我单击“添加新行”按钮。
然后,我收到控制台错误消息:
“未捕获的TypeError:无法读取未定义的属性'street”
我想问一下如何正确格式化数据以获得具有更新数据的嵌套JSON对象?
非常感谢您的任何建议。
当您添加新行而未为dataSource定义架构模型时,正在创建的对象还没有“ address”字段。 带有“ address.street”的列正试图从新对象的“ address”字段中获取“ street”字段,该字段此时未定义,因此会出现错误。
坏消息是,架构模型定义实际上并不适合嵌套类型。 好消息是,您可以使用defaultValue为{}定义一个“地址”字段,并且Grid编辑器应该很高兴。
$("#myGrid").kendoGridEx({
...
columns: [
{ field: "address.street" },
{ field: "address.city" },
{ field: "address.state" },
...
],
dataSource: new kendo.data.DataSourceEx({
...
schema: {
model: {
id: "Id",
fields: {
address: { defaultValue: {} },
},
},
},
...
}),
});
现在,当您添加新行时,绑定对象的“地址”字段将为{}。 当然,“街道”,“城市”和“州”字段是未定义的,但是它们的父对象“地址”已定义,因此访问它们的字段时不会看到错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.