【问题标题】:Kendo Grid: add new row with nested object stopped workingKendo Grid:添加新行,嵌套对象停止工作
【发布时间】:2014-06-27 07:23:51
【问题描述】:
【问题讨论】:
标签:
javascript
json
nested
kendo-grid
【解决方案1】:
当您在未定义数据源的模式模型的情况下添加新行时,正在创建的对象还没有“地址”字段。具有“address.street”的列试图从此时未定义的新对象的“地址”字段中获取“街道”字段,因此出现错误。
坏消息是模式模型定义并不真正适合嵌套类型。好消息是您可以使用 {} 的 defaultValue 定义一个“地址”字段,并且网格编辑器应该很高兴。
$("#myGrid").kendoGridEx({
...
columns: [
{ field: "address.street" },
{ field: "address.city" },
{ field: "address.state" },
...
],
dataSource: new kendo.data.DataSourceEx({
...
schema: {
model: {
id: "Id",
fields: {
address: { defaultValue: {} },
},
},
},
...
}),
});
现在,当您添加新行时,绑定对象的“地址”字段将为 {}。 “街道”、“城市”和“州”字段当然是未定义的,但它们的父对象“地址”已定义,因此您在访问它的字段时不会看到错误。