Javascript Dojo 1.8使用提供的JsonRest的对象和子对象填充EnhancedGrid
有没有办法用JSON结构中的子对象填充dojox/grid/EnhancedGrid的列? 例如,如果我有一个JSON行,它看起来像:Javascript Dojo 1.8使用提供的JsonRest的对象和子对象填充EnhancedGrid,javascript,dojo,dojox.grid,Javascript,Dojo,Dojox.grid,有没有办法用JSON结构中的子对象填充dojox/grid/EnhancedGrid的列? 例如,如果我有一个JSON行,它看起来像: { id: 2, name: "TestItem2", created: { date: "2013-03-28 11:59:40", timezone_type: 3, timezone: "Europe/Berlin"
{
id: 2,
name: "TestItem2",
created: {
date: "2013-03-28 11:59:40",
timezone_type: 3,
timezone: "Europe/Berlin"
}
}
我想在子对象“created”中用“date”填充网格的一列。
我已经尝试过在网格的“structure”属性中将列的“field”属性设置为“created.date”,但没有成功。在这种情况下,可以使用格式化程序:
var structure = [[
{'name': 'Date', 'field': '_field', formatter: myFormatter }
]];
它将把整个节点从存储区传递到一个名为myFormatter
的函数中,您可以从该函数中传递相关条目,如:
function myFormatter(node, rowIdx){
return node.created.date;
};
另请参见citress在此处的回答:这是一种邪恶和蹩脚的行为,但更改对象结构可能会帮助您将其放入网格。听起来你只是想要约会,所以你可以这样做:
var o = {
id: 2,
name: "TestItem2",
created: {
date: "2013-03-28 11:59:40",
timezone_type: 3,
timezone: "Europe/Berlin"
}
};
o.created = o.created.date;
现在该对象如下所示:
created: "2013-03-28 11:59:40"
id: 2
name: "TestItem2"
以下是来自控制台的示例:
@Seijikun让我知道这是否对您有帮助。我想到了这一点,但不幸的是这是不可能的,因为Rest API是不可更改的。这对日期有效,但实际数据模型包含更多的子对象,其中我需要的属性不止一个。更改模型clientside需要遍历所有项,这将非常糟糕。我将把答案留在这里,以防它对其他人有所帮助。