剑道网格:添加新的行嵌套对象停止工作
Kendo Grid: add new row with nested object stopped working
我用这种方式从嵌套的JSON中填充剑道数据网格:
https://stackoverflow.com/a/24441318/535556一切都很好,直到我点击"添加新行"按钮。
然后我收到一个控制台错误消息:
"Uncaught TypeError: Cannot read property 'street' of undefined "
我想问如何正确格式化数据以获得更新数据的嵌套JSON对象?
感谢任何建议。
在没有为数据源定义模式模型的情况下添加新行时,正在创建的对象还没有"address"字段。包含"address"的列。"Street"试图从新对象的"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: {} },
},
},
},
...
}),
});
现在,当你添加一个新的行,绑定对象的"地址"字段将是{}。"street","city"answers"state"字段当然是未定义的,但是它们的父对象"address"是定义的,所以当你访问它的字段时,你不会看到和错误。
相关文章:
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 如何打印嵌套对象的所有值
- 设置嵌套对象属性的更好方法
- 嵌套对象结构
- 如何递归地获取嵌套对象中所有子对象的列表
- 更改嵌套对象的父子相关id
- 如何通过json对象数组为嵌套对象赋值
- Ember.js(2.5.0)如何设置嵌套对象值
- 嵌套对象文本访问父级
- 如何对两个嵌套对象进行排序
- 在javascript中使用方括号表示法的嵌套对象
- 具有嵌套对象数组的 Javascript 对象的递归搜索函数
- 更新嵌套对象的多个字段
- MongoDB嵌套对象数组后查询
- 在流星中插入嵌套对象
- 将嵌套对象数据添加到窗体中
- Chai深度包含了对嵌套对象的断言
- 使用Angular.js解析JSON中的嵌套对象数组
- 如何以编程方式添加到可变嵌套对象中
- Javascript嵌套对象访问根级别